【JavaScript ECMAScript】Function::Function.prototype.callインスタンスメソッドの使い方
Function.prototype.call()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Function.prototype.call()メソッドは、JavaScriptにおいて、特定の関数を指定されたthisの値と個別に与えられた引数で呼び出すためのメソッドです。通常、JavaScriptの関数が実行される際、その内部で参照されるthisの値は、関数の呼び出し方によって自動的に決定されますが、call()メソッドを使用することで、開発者はこのthisの値を明示的に指定できるようになります。これにより、あるオブジェクトが持つメソッドを別のオブジェクトのコンテキストで実行するなど、関数の再利用性を高め、柔軟なプログラミングが可能になります。
このメソッドの最初の引数は、関数内でthisとして参照されるオブジェクトを指定します。続く第二引数以降は、呼び出される関数に個別の引数として順番に渡されます。例えば、あるオブジェクトに定義された関数を、別のオブジェクトが自身のデータを使って実行したい場合にcall()は非常に役立ちます。関数は指定されたthisと引数で即座に実行され、その関数の実行結果がcall()メソッドの戻り値となります。このように、call()は関数の実行コンテキストを制御する強力な手段を提供し、特にオブジェクト指向プログラミングにおけるパターンやライブラリの設計において重要な役割を果たします。
公式リファレンス: Function.prototype.call()
構文(syntax)
1function func.call(thisArg, arg1, arg2, /* ..., */ argN) { 2 // 関数の実行例 3}
引数(parameters)
thisArg, ...args
- thisArg: 関数を呼び出す際に
thisとして機能する値を指定します。 - ...args: 関数に渡す引数を、カンマ区切りで指定します。
戻り値(return)
呼び出された関数の戻り値
呼び出された関数が実行された結果を返します。