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();

(また、functionはキーワードです。変数名として使用することはできません。)

于 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 に答える