1

我正在使用 Firefox 的 Web 控制台(FF v22)。使用console.info(),可以反映将来对数组的更改。这是 Web 控制台的错误吗?或者 FF 上的 JavaScript 是否表现得像这样?

例如:

var myArr = [1];
console.info(myArr) // on Firefox [1,2] - NOT EXPECTED
myArr.push(2);
console.info(myArr) // on Firefox [1,2] - EXPECTED

另一方面,IE 的行为确实符合预期。

var myArr = [1];
console.info(myArr) // on IE: 1
myArr.push(2);
console.info(myArr) // on IE: 1,2
4

1 回答 1

2

发生这种情况是因为console.info调用是异步的。它可能不会在完成后的行之前完成,并且当您处理通过引用传递的数组时,console.info调用接收到指向数组的指针(似乎在生成日志之前已更新)而不是值时间console.info被调用。

于 2013-07-18T15:10:46.837 回答