使用setInterval()
更新JavaScript数组时,我看到了奇怪的行为。运行以下代码将导致console.log()
仅运行一次。但是,如果您检查变量a
,则它会在每个时间间隔继续更新。尽管console.log()
实际上在每个间隔中都被a
更新了,为什么a.c = a.b
只执行一次?
var a = {
b: [],
c: [],
d: function() {
if (a.b != a.c) {
console.log('Changing', a.b, a.c);
a.c = a.b;
}
},
start: function() {
setInterval(function() {
a.b.push('e');
a.d();
}, 1000);
}
}
a.start();