Function() コンストラクター
Function
コンストラクターは、新しい Function
オブジェクトを生成します。コンストラクターを直接呼び出すと動的に関数を生成することができますが、セキュリティや、 eval
と似た性能の (ただし、はるかに重要性の低い) 問題を抱えます。ただし eval とは異なり、 Function
コンストラクターはグローバルスコープで実行される関数のみを生成します。
試してみましょう
構文
new Function([arg1 [, arg2 [, ...argN]] ,] functionBody)
引数
arg1, arg2, ... argN
-
仮引数の名前として関数で用いるための名前。各々は、妥当な JavaScript の識別子と一致する文字列か、カンマで区切られた文字列などのリストでなければなりません。例えば、 "
x
", "theValue
", "x,theValue
" などです。 functionBody
-
関数定義を形成する JavaScript の文を含む文字列。
解説
例
Function コンストラクターに引数を指定する
以下のコードは二つの引数を取る Function
オブジェクトを生成します。
js
// この例は JavaScript コンソールで直接実行することができます
// 二つの引数を取り、その合計を返す関数を生成します
const adder = new Function("a", "b", "return a + b");
// 関数を呼び出します
adder(2, 6);
// 8
引数 "a
" および "b
" は関数の本体 "return a + b
" の中で使用される形式的な引数名です。
仕様書
Specification |
---|
ECMAScript Language Specification # sec-function-constructor |
ブラウザーの互換性
BCD tables only load in the browser