18

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;
    }
  }  
};

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

4

4 に答える 4