【发布时间】:2014-10-03 15:19:06
【问题描述】:
var Beer = function(){
var moreBot = 100,
lessBot = 10,
wholeCase = moreBot + lessBot;
this.count = function(){
moreBot = 22;
lessBot = 33;
console.log(moreBot); //returns 22
console.log(lessBot); //returns 33
return wholeCase; //returns 110 instead of 55??
};
};
var Alc = new Beer();
假设我有一个使用引用外部函数变量的闭包的构造函数。那么为什么当我在更改变量 moreBot 和 lessBot 后返回 WholeCase 时,我得到了最初分配的值的总和?提前感谢您的专业知识!
【问题讨论】:
-
你第二次忘了
wholeCase = moreBot + lessBot。你必须告诉 JavaScript 为你做这件事。它不会自己解决。 -
改变一个变量的值,从不神奇地改变另一个变量的值。在这方面,JavaScript 的行为与大多数其他语言一样。
标签: javascript closures