这可能是完全显而易见的,但我想确认允许通过createServer方法中的匿名或命名函数访问请求和响应对象的“机制”是关闭的一个例子吗?那就是createServer是外部函数,还有一些其他返回函数是可以访问请求和响应对象的内部函数吗?
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
答案 0 :(得分:1)
不,它们只是简单的方法参数。这是我的标准“封闭的超级明显例子”片段:
var tipper = function (percentage) {
return function tip(total) {
return total + (total * (percentage / 100));
};
};
var generous = tipper(20);
var normal = tipper(18);
var stingy = tipper(8);
console.log(generous(24.50), normal(24.50), stingy(24.50));
内部tip
函数对percentage
变量的持久访问,即使在返回外部tipper
函数之后,也是关闭的。