我想运行一个自动将函数名增加1的循环。为了更容易理解:
我目前的代码:
for(var i = 1; i <= 2; i++) {
var fn = 'this.getExterior',
el = (fn + i + '()').getInnerItems();
}
我想增加函数名称并检索类似this.getExterior1,this.getExterior2的内容。上面的代码给了我一个不是函数的对象。有人可以给我一个解决方案如何实现它。非常感谢你提前!
答案 0 :(得分:3)
你不能真正使用字符串作为代码(eval
可以,但这里没有必要)。您可以使用[]
语法:
el = this["getExterior" + i]().getInnerItems();
(另外,function
是一个关键字;您不能将其用作变量名。)
答案 1 :(得分:2)
它将是:
var el = this['getExterior'+i]().getInnerItems();
在javascript中可以通过这种方式访问任何属性或对象
object.property
与object['property']
答案 2 :(得分:1)
如下所示:
var i, fn;
for (i = 1; i <= 2; ++i) {
fn = 'getExterior' + i;
el = this[fn]().getInnerItems();
}