您好我正在学习如何使用闭包创建私有变量。阅读很好,但是当我尝试更改变量时,它是未定义的,但为什么?
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}
答案 0 :(得分:2)
myMoney.setMoney
不会返回任何内容。它接受一个值然后设置它,因此对getMoney
的下一次调用将具有更新的值。
此外,您正在设置this.money
,但this.money
与money
不同。你只想要money = newMoney
。