1

複数の引数として扱われるべき配列とともに文字列から関数を実行しようとしています。

例:

var app = {
  bar : function(val1, val2, val4){
    console.log(val1+val2+val3);
  }
};

fn_name = "bar";
fn_args = ['one', 'two', 'three'];

app[fn_name](fn_args);

このコードの問題は、fn_argsが個別の引数として拡散されるのではなく、単一の引数として渡されることです。回避策はありますか?私はまだ通過fn_nameし、fn_args動的にしたいです。

4

2 に答える 2

2

apply次の方法を使用します。

app[fn_name].apply(app, fn_args);

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

于 2012-06-27T14:39:44.763 に答える
1

を使用しfunction.apply()ます。

app[fn_name].apply(app, fn_args);

this最初の引数は関数内のコンテキスト( )であり、2番目の引数はアイテムを引数として渡す必要がある配列です。

于 2012-06-27T14:40:22.900 に答える