有人可以解释这里发生了什么,以及如何解决?我正在使用JSMock,并在spec.js
中执行以下代码:
for (var t in []) {
alert(t)
}
...导致我的浏览器警告“eachIndexForJsMock”(当它不应该执行alert
命令时)。这会弄乱我的for each
循环。我该如何解决?
答案 0 :(得分:1)
问题在于JSMock augments the Array.prototype
object。
for-in
语句用于枚举对象属性,对于数组和类似数组的 1 对象,始终建议使用迭代循环,例如:
for (var i = 0; i < arr.length; i++) {
//...
}
您应该避免for-in
类似于数组的对象,因为:
另见:
[1] array-like 我的意思是任何包含顺序编号属性和length
属性的对象。