带闭包的私有变量

时间:2017-01-23 21:29:17

标签: javascript closures

您好我正在学习如何使用闭包创建私有变量。阅读很好,但是当我尝试更改变量时,它是未定义的,但为什么?

var myMoney=(function somePrivateElements(){
    var money=23;

    return {
             getMoney: function(){ return money},
             setMoney: function(newMoney){money = newMoney;}
    }
})();

    console.log(myMoney.getMoney()); //23
    console.log(myMoney.setMoney()); //say it is undefined

更新

我的错误在于setMoney
setMoney {money = newMoney; return money}

1 个答案:

答案 0 :(得分:2)

myMoney.setMoney不会返回任何内容。它接受一个值然后设置它,因此对getMoney的下一次调用将具有更新的值。

此外,您正在设置this.money,但this.moneymoney不同。你只想要money = newMoney