下面的循环为 i=0 运行一次,然后无限期地为 i=1 运行到浏览器崩溃中,即 i 不递增:
cascadeComponent: function(item, fn, scope) {
if (fn.call(scope || this, item) !== false) {
if (item.items) {
for (i = 0; i < item.items.items.length; i++) {
this.cascadeComponent(item.items.items[i], fn, scope);
}
}
}
}
我可以通过使用框架迭代循环来避免这个问题。或者,我有相同的循环,但在 item.items 与 item.items.items 中发现数组的细微差别。
任何想法为什么会发生这种情况?在 Chrome 和 Firefox 中也是如此。