0

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

我目前的代码:

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

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

4

3 回答 3

3

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

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

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

于 2012-08-22T15:02:16.987 回答
2

这将是 :

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

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

object.property是相同的object['property']

于 2012-08-22T15:02:07.223 回答
1

类似于以下内容:

var i, fn;

for (i = 1; i <= 2; ++i) {
  fn = 'getExterior' + i;
  el = this[fn]().getInnerItems();
}
于 2012-08-22T15:02:28.890 回答