如何在javascript中使用循环增加1的功能

时间:2012-08-22 14:59:56

标签: javascript

我想运行一个自动将函数名增加1的循环。为了更容易理解:

我目前的代码:

 for(var i = 1; i <= 2; i++) {
                var fn = 'this.getExterior',
                    el = (fn + i + '()').getInnerItems();
}

我想增加函数名称并检索类似this.getExterior1,this.getExterior2的内容。上面的代码给了我一个不是函数的对象。有人可以给我一个解决方案如何实现它。非常感谢你提前!

3 个答案:

答案 0 :(得分:3)

你不能真正使用字符串作为代码(eval可以,但这里没有必要)。您可以使用[]语法:

el = this["getExterior" + i]().getInnerItems();

(另外,function是一个关键字;您不能将其用作变量名。)

答案 1 :(得分:2)

它将是:

var el = this['getExterior'+i]().getInnerItems();

在javascript中可以通过这种方式访问​​任何属性或对象

object.propertyobject['property']

相同

答案 2 :(得分:1)

如下所示:

var i, fn;

for (i = 1; i <= 2; ++i) {
  fn = 'getExterior' + i;
  el = this[fn]().getInnerItems();
}