[ new ] Function ()【コンストラクタ】

メモ

構文

  • [ new ] Function ( [ p1 [, p2 [, … , pn]], ] body )

  • p1pn:引数名 (全てをカンマ区切りの1つの文字列とみなす、例参照)
  • body:実行コード

Function【関数】オブジェクト

SyntaxError 例外:引数 または 実行コード が構文エラー

// 下記の3つの関数は同等
var func1 = Function("x", "y", "z", "return (x + y + z);");
var func2 = Function("x, y, z", "return (x + y + z);");
var func3 = Function("x, y", "z", "return (x + y + z);");
console.log(func1(1, 2, 3));  // 出力:6
console.log(func2(1, 2, 3));  // 出力:6
console.log(func3(1, 2, 3));  // 出力:6
// 引数なし関数
var func = Function("return '関数 呼び出し';");
console.log(func());                // 出力:関数 呼び出し
// 例外
func = Function("123", "return;");  // SyntaxError 例外 (引数不正)
func = Function("x", "/");          // SyntaxError 例外 (実行コード不正)

// 下記の3つの関数は同等
var func4 = new Function("x", "y", "z", "return (x + y + z);");
var func5 = new Function("x, y, z", "return (x + y + z);");
var func6 = new Function("x, y", "z", "return (x + y + z);");
console.log(func4(1, 2, 3));  // 出力:6
console.log(func5(1, 2, 3));  // 出力:6
console.log(func6(1, 2, 3));  // 出力:6
// 引数なし関数
func = new Function("return '関数 呼び出し';");
console.log(func());                // 出力:関数 呼び出し
// 例外
func = new Function("123", "return;");  // SyntaxError 例外 (引数不正)
func = new Function("x", "/");          // SyntaxError 例外 (実行コード不正)

関連