実行していた JavaScript で問題が発生し、以下のコードに分割しました。が呼び出された_localVar
後に変数が変更されない理由について混乱しています。init()
RevealingModule で参照this._localVar
すると、期待どおりの結果が得られることがわかりました。範囲で迷っています。誰かがなぜこれが起こっているのかを明確にしてください。を使わなければthis
、次のスコープはモジュールになると思っていましたが、そうではないと思います。
var myRevealingModule = (function () {
var _localVar = "Default";
function init() {
console.log(_localVar);
_localVar = "Init";
}
function getTest() {
console.log(_localVar);
}
return {
init: init,
getTest: getTest,
localVar: _localVar
};
})();
myRevealingModule.getTest(); // "Default"
console.log(myRevealingModule.localVar); // "Default"
myRevealingModule.init(); // "Default"
myRevealingModule.getTest(); // "Init"
console.log(myRevealingModule.localVar); // "Default" * WHY *