【问题标题】:Javascript dynamically function calls in for loopJavascript在for循环中动态调用函数
【发布时间】:2018-03-25 16:53:26
【问题描述】:

假设你想在 Javascript 中做这样的事情:

const items = {identifier1, identifier2, identifier3 ...}

for (i = 0; i < items.length; i++) {

    this.addMyMethod(items[i], items[i]);
}

...然后在脚本中的任何其他地方,您可以执行以下操作:

var result1 = this.MyMethod.identifier1.result;
var result2 = this.MyMethod.identifier2.result;
var result3 = this.MyMethod.identifier3.result;
...
console.log(result1, result2, result3, ...);

这工作正常,但我想动态地做;像这样:

method.allMyMethods = function() {

    var results = [];

    for (i = 0; i < items.length; i++) {

        results.push[items[i]] = this.MyMethod.items[i].result;
    }
    console.log(JSON.stringify(results));
}

但是使用上面的代码,当我尝试这个时:

this.MyMethod.items[i].result;

...Javascript报错:

TypeError: Cannot read property 'items[0]' of undefined

我希望你能理解我想要做什么(顺便说一句,我希望避免使用 eval)。

也许有人可以解释我的错误?

非常感谢

【问题讨论】:

  • 一些重新措辞和缩进清理

标签: javascript function call dynamically-generated


【解决方案1】:

您可能希望通过索引器进行查找:

this.MyMethod[items[i]].result;

【讨论】:

  • 嗨,请看我的第二个答案。也许你可以解决它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 2021-11-20
  • 2017-12-16
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
相关资源
最近更新 更多