【发布时间】: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