JavaScriptのモジュールパターンでは、「即座に呼び出される関数式」(自己実行型の匿名関数とも呼ばれます)は、オブジェクトを返す自己実行関数として使用されます。 自己実行機能はどのようにしてプライベート変数を隠し、返されたオブジェクトのみを公開することができます。なぜこれは通常のJavaScript関数では起こりませんか? 次のミニモジュールでは、enclosing()()を使用しないで同じカプセル化の概念を達成できないのはなぜですか?Javascriptモジュールパターンで自己実行する匿名関数が使用されるのはなぜですか?
var Module = (function() {
var privateVariable = "foo",
privateMethod = function() {
alert('private method');
};
return {
PublicMethod: function() {
alert(privateVariable);
privateMethod();
}
};
})();
あなたに必要な理解の50%を与えるべきで割り当てられているものを中心に、あなたの心を取得します。残りの50%は[クロージャ](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Closures)を理解したものです。それでも問題が解決しない場合は、Douglas Crockfordの「[JavaScriptのプライベートメンバー](http://javascript.crockford.com/private.html)」を読んでください。 –