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;
}
}
};
この「関数」にセミコロンが必要なのはなぜですか? 宣言の直後に呼び出す必要がある場合は、最後のセミコロンの前に () を配置する必要があります。しかし、ありません。