配列に基づくパラメータを持つ関数を作成する方法

私は関数のパラメータをsimbolizeする配列を持っています。

例えば:

var params = ['name', 'age', 'email'];

この情報はこの配列を返す別のエンドポイントによって作成されます。この配列から、次のような関数を作りたいと思います:

function (name, age, email) {
    //...
    //my custom code
    return result;
}

ですから、私は自動的に関数を作成し、各配列要素をその関数の引数として使用したいと思います。

eval を使用せずにこれを達成する方法はありますか?

new function( 'name'、 'age'、 'email'、 'fn body')はオンザフライで生成することはできません。

前もって感謝します

1
あなたがしたいことは意味をなさない。名前付きのパラメータで関数を作成することには意味がありません。本当の問題は何ですか?
追加された 著者 Alex Turpin,
あなたは本当にこれをする必要がありますか?配列やオブジェクトをパラメータとして期待し、そこから必要なものを得ることができます。
追加された 著者 Radoslav Georgiev,

3 答え

var a = Function.apply( {}, ["name", "age", "email", "return email;"] );

/*function anonymous(name,age,email) {
return email;
}*/

a(1,2,3);

//3

これは eval より具体的なメリットはありません。あなたがしようとしていることは、文字列をコードに即座に評価する必要はありません

1
追加された

パラメータの配列を持つ関数を呼び出す場合は、 適用 します。例えば:

function foo(a, b, c) {
    alert(a + b + c);
}
foo.apply(null, [1, 2, 3]);
0
追加された

.apply()を使用できます。関数本体が配列の最後のメンバーであることを確認してください。

Function.apply( null, your_array );
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript