callメソッド

メソッド call は、指定されたコンテキストで関数を呼び出すことを可能にします。 メソッドの最初のパラメータは関数のコンテキストを指定し、 残りのパラメータは関数の引数となります。

構文

javascript関数.call(コンテキスト, パラメータ1, パラメータ2...);

例

次のような入力要素があるとします:

html<input id="elem" value="text">

また、3つのパラメータを受け取る関数があるとします:

javascriptfunction func(param1, param2, param3) {
  console.log(this.value + param1 + param2 + param3);
}

この関数を、内部の this が入力要素を参照するように呼び出し、 同時に数値 1、2、3 を引数として渡してみましょう:

javascriptlet elem = document.querySelector('#elem');
func.call(elem, 1, 2, 3);

例

関数がパラメータを受け取らない場合を考えます:

javascriptfunction func() {
  console.log(this.value);
}

この場合、call を通じてこの関数を呼び出す際には、 コンテキストを示す最初のパラメータのみを渡せば十分です:

javascriptlet elem = document.querySelector('#elem');
func.call(elem);

関連項目

  • メソッド apply,
    コンテキストを指定して関数を呼び出します
  • メソッド bind,
    関数にコンテキストをバインドします