我以为我开始很好地理解 JavaScript,但显然不是。让我用一个例子来解释我的问题。首先,我定义了以下模块:
var Test = function() {
var counter = 0;
function init() {
alert(counter);
}
return {
counter: counter,
init: init
}
};
然后我创建 2 个实例:
var test1 = new Test();
var test2 = new Test();
现在我更新计数器变量(因为它是公开的)并发出一些警报。到现在为止还挺好。
alert(test1.counter); // Alerts 0
test1.counter = 5;
alert(test2.counter); // Alerts 0
test2.counter = 10;
alert(test1.counter); // Alerts 5
现在最后我说以下几点:
test1.init(); // Alerts 0
test2.init(); // Alerts 0
这是我不明白的一点。为什么这个警报 0?我以为第一个警报是 5,第二个是 10。
如果有人能解释上述内容如何工作或为我指明正确的方向,我将不胜感激。谢谢