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
在施工时设置。您的示例与以下示例没有明显区别:
var foo = 5,
bar = 6;
var sum = foo + bar; // sum is 11
foo = 100000;
console.log(sum); // sum is still 11; we never changed sum
您要么在wholeCase
每次使用它时都需要重新计算,要么就使其成为一个函数:
var Beer = function(){
var moreBot = 100,
lessBot = 10,
computeWholeCase = function() { return moreBot + lessBot };
this.count = function(){
moreBot = 22;
lessBot = 33;
return computeWholeCase(); // run computeWholeCase to return 55
};
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句