花了一些时间查看我的函数以找出问题所在,我意识到当我调用包含它的函数时,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;
这让我感到非常困惑。