Javascript动态函数调用for循环

时间:2018-03-25 16:53:26

标签: javascript function call dynamically-generated

假设你想在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)。

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

非常感谢

1 个答案:

答案 0 :(得分:0)

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

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