JavaScript动态函数调用循环



假设您想在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(。

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

非常感谢

您可能想要通过索引来查找:

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