我已经阅读了很多关于 Javascript 中的闭包的内容这些大括号是干什么用的?我在mozilla.org上读到,它说闭包应该定义为
(function(){...})();
但在http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html上,它说闭包函数是
(function(){...}());
有什么区别或后一个是错误的?最后一个()的目的是什么?你会在里面放一些参数吗?我正在寻找一个很好的参考。
编辑:此外, Mozilla.org上有一个示例
var makeCounter = function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
},
decrement: function() {
changeBy(-1);
},
value: function() {
return privateCounter;
}
}
};
为什么这个“功能”需要分号?如果需要在声明后立即调用,则应在结束分号之前放置 ()。但是没有。