我见过许多 js 框架(包括 jquery)在其主要功能范围内使用闭包。例如,
var obj = (function(){
return {
test : function(){
alert('test');
}
}
})();
obj.test()
jquery 源, http://code.jquery.com/jquery-1.7.2.js
围绕“功能”需要额外的“封闭”吗?或者如果我们像这样使用它有什么区别,
var obj = function(){
return {
test : function(){
alert('test');
}
}
}();
obj.test()
两者都具有相同的行为,并且函数定义本身将所有局部变量放在一个新的范围内……那么为什么要额外的闭包呢?