2011-10-27 8 views
1

配列を持っているので、関数のパラメータをsimbolizeします。例について配列に基づくパラメータを使って関数を作成する方法

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

、この情報は、この配列を返す別のエンドポイントによって作成されます。あなたは私が自動的に関数を作成し、その関数の引数として配列の各要素を使用したい見ることができるように

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

:この配列から私はこのような関数を作成したいと思います。

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

new Function('name', 'age', 'email', 'fn body')はオンザフライでも生成できません。事前に

おかげ

+1

あなたがしたいことは意味をなさない。名前付きのパラメータで関数を作成することには意味がありません。本当の問題は何ですか? –

+0

本当にこれが必要ですか?配列やオブジェクトをパラメータとして期待し、そこから必要なものを得ることができます。 –

答えて

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

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

a(1,2,3); 

//3 

これはしかしeval以上の具体的な利点を持っていないし、何をやろうとしているが、おそらくあなたが呼び出したい場合はフライ

0

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

Function.apply(null, your_array); 
0

上のコードの中に文字列を評価することなく、異なっ行うことができますパラメータの配列で関数applyを使用します。例:

function foo(a, b, c) { 
    alert(a + b + c); 
} 
foo.apply(null, [1, 2, 3]); 
関連する問題