2016-08-10 10 views
-1

私は関数の本体でstringから関数を呼び出そうとしています。私はパラメータ名だけを知っていて、機能にパラメータを渡すことができます。関数本体の文字列からjavascript関数を呼び出して複数のパラメータを送信するにはどうすればよいですか?

私はそれだけで一つのパラメータのために働くthis way

function callFunction(body, paramNames, params) { 
    return new Function(paramNames, body)(params); 
} 

を試してみました。いくつかのパラメータに対して、どうすればいいですか?

おかげ

+0

まあ、それは '関数callFunction(ボディ、paramNames、...のparams){ 新しい関数を返す(paramNames、ボディ)(...のparams)です。 } '、あなたがしようとしているものはすべて停止します。 –

+0

うわー。私はあなたのJSFiddleを見ました。私はあなたに答えがありませんが、これはどのようにまったく機能しますか?論理はどこですか? * mindblown * – WlkrShrpe

答えて

1

私は右のあなたを理解していれば、あなたが動的に関数を作成し、それにパラメータを渡すたいです。通常は、2つの異なるステップで実行されます。1 - 関数を作成し、2 - 関数を作成します。

Here is the code

function createFunction(body, paramNames) { 
    return new Function(paramNames, body); 
} 

$(document).ready(function(){ 
    var func1 = createFunction("return a + 1;", ["a"]); 
    var func2 = createFunction("return a + b;", ["a","b"]); 
    $("#singleParam").text(func1.apply(this,[1])); 
    $("#multipleParam").text(func2.apply(this, [1, 2])); 
}); 
関連する問題