javascript - for循环中的函数调用终止循环?

标签 javascript

我在使用 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/

相关文章:

javascript - 单引号和双引号都使用。那我应该用什么呢?

javascript - HTML 对齐下拉元素

javascript - 使用 Angular 4 Form Group 编辑和添加新数据

javascript - 将输入的值属性绑定(bind)到属性

javascript - 有没有办法将其简化为只有几行 jQuery

javascript - 从javascript中的回调函数返回值?

javascript - 如何在 Django 环境中使 html 从外部 js 文件调用 javascript 函数

javascript - 寻找一种将对象数组从一个嵌入式脚本传递到另一个嵌入式脚本的方法

javascript - 像以前一样重置动态表单

javascript - Bootstrap 4 关闭模式,背景不会消失