1. ホーム
  2. javascript

[解決済み] javascriptで文字列から関数を作成する方法はありますか?

2022-07-15 12:35:26

質問

例えば

var s = "function test(){
  alert(1);
}";

var fnc = aMethod(s);

これが文字列なら、fncという関数が欲しいですね。そして fnc(); は警告画面をポップアップします。

eval("alert(1);") は、私の問題を解決しません。

どのように解決するのですか?

私は、文字列から関数を作成する4つの異なる方法のjsperfのテストを追加しました。

  • FunctionクラスでRegExpを使用する

    var func = "function (a, b) { return a + b; }".parseFunction();

  • Functionクラスを"return"で使用します。

    var func = new Function("return " + "function (a, b) { return a + b; }")();

  • 公式Functionコンストラクタの使用

    var func = new Function("a", "b", "return a + b;");

  • Evalの使用

    eval("var func = function (a, b) { return a + b; };");

http://jsben.ch/D2xTG

結果サンプル2件。