慎用 for (var index in items)
2024-04-13 11:50:43 来源:zfxfun 点击:536
JavaScript 循环数组的项,我们一般人用 for (var i = 0; i < items.length; i++),也有人用 for (var index in items)。
我们要慎用 for (var index in items),为什么呢?
如果我们对array进行扩展了,如增加了几个方法,比如删除方法或者copy方法,
Array. prototype.copy = function () { };
var arr = [1, 2];
for ( var index in arr)
{
alert( index);
}
使用 for (var index in items) 的时候就会把上面的几个方法也遍历一遍,会导致意想不到的错误,而且不易发现!
我们看到会弹出三个对话框,分别是:0、1、copy,也就是说除了项的数值索引 0、1,还多了一个 copy,而这个 copy 就是因为 Array.prototype.copy 扩展得到的。
所以说不要把 for (var index in items) 当作是 for (var i = 0; i < items.length; i++) 的一种简写,二者具有不同的意义。
可以使用jq的each代替,或者使用这个for (var i = 0; i < items.length; i++)代替,或者过滤掉都可以
(i p.params) { (i){ ; } paramLen; strParams (i p.params[i] ); }