我遇到了一些我正在运行的 javascript 的问题,并将其分解为下面的代码。我对为什么调用_localVar
后变量没有改变感到困惑。init()
我发现如果我this._localVar
在revealingModule 中引用,结果符合预期。我对范围感到困惑。有人可以澄清为什么会发生这种情况。我认为如果我不使用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 *