当while循环正常工作时,为什么for循环会导致挂起?

时间:2014-07-24 09:27:02

标签: javascript arrays loops for-loop while-loop

花了一些时间查看我的函数以找出问题所在,我意识到当我调用包含它的函数时,for循环的实例导致挂起。

原始代码:

for (i = 0; i < this.fields.length; i++) {
    if (!this.fields[i].isValid()) return false;
}

return true;

isValid方法在所有情况下都返回一个布尔值,fields属性是一个包含对象的数组。

调用此代码会导致我的页面挂起。但是,以下代码可以正常工作:

// Duplicate the array
var fields = this.fields.slice(0),
    field;

while (field = fields.shift()) {
    if (!field.isValid()) return false;
}

return true;

这让我感到非常困惑。

0 个答案:

没有答案