Function.prototype.call()【関数呼出し (可変引数)】メソッド

メモ

構文

  • call ( thisArg [ , arg1 [ , arg2, … ] ] )

  • thisArg:関数内でthisで参照される値 (省略 または null:グローバルオブジェクト)
  • arg1~:引数

指定関数の戻り値

TypeError 例外:関数が呼び出し不可

var funcA0 = Function("return 999;");
var funcA1 = Function("x", "return x;");
var funcA2 = Function("x, y", "return (x + y);");
var funcA3 = Function("x, y, z", "return (x + y + z);");

var funcB0 = Function("return parseInt(this);");
var funcB1 = Function("x", "return (this + x);");
var funcB2 = Function("x, y", "return (this + x + y);");
var funcB3 = Function("x, y, z", "return (this + x + y + z);");

console.log(funcA0.call(null));             // 出力:999
console.log(funcA1.call(null, 1));          // 出力:1
console.log(funcA2.call(null, 1, 2));       // 出力:3
console.log(funcA3.call(null, 1, 2, 3));    // 出力:6

console.log(funcB0.call(100));              // 出力:100
console.log(funcB1.call(100, 1));           // 出力:101
console.log(funcB2.call(100, 1, 2));        // 出力:103
console.log(funcB3.call(100, 1, 2, 3));     // 出力:106

console.log(Math.max.call(null, 1, 2, 3));  // 出力:3

関連