使用闭包更好地编写此代码吗?是否有更好的方法来编写它,或者该函数是否保护变量?
(function(){
var http = require('http'),
port = process.argv[2],
string = "",
length = 0;
http.get(port, function(res){
res.on('data', function(data){
length += data.length;
string += data;
});
res.on('end', function(){
console.log(length);
console.log(string)
});
});
})();
答案 0 :(得分:3)
这确实将变量保留在自身内,并且无法访问任何外部代码:
(function() {
var so = '//stackoverflow.com';
alert(so); will alert '//stackoverflow.com'
})();
alert(so); // Will alert Undefined **See note at bottom
Take a look at his post我通过快速谷歌搜索找到了
注意:如下面的评论中所述,这不会警告未定义,但实际上会引发参考错误,因为so
在IIFE之外的范围内不存在。 Take a look at MDN了解更多信息!