我在使用 JavaScript 时遇到了一个有趣的问题。我有一种感觉,这可能与闭包有关,我承认,我对闭包不太满意。
问题 似乎从内部调用函数会导致循环提前终止。我尝试在没有函数调用的情况下运行相同的循环,并且 console.log() 准确地输出计数器表明函数调用正在中断循环。
有人可以建议一个可能的修复方法吗?我将代码粘贴在这里:
AbstractModel.prototype.deactivateContext = function(context){
for(i=0;i<this.asset.length;i++){
if(this.asset[i].context == context){
this.asset[i].deactivate();
console.log(i);
this.notify(this.asset[i],"REFRESHASSETS");
}
}
}
最佳答案
var
不是可选的
您可能在另一个方法中有一个全局 i
。将您的变量声明到正确的范围。
for (var i=0; i<this.asset.length; i++) {
^^^
关于javascript - for循环中的函数调用终止循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429460/