【JavaScript ECMAScript】Reflect::Reflect.apply静的メソッドの使い方
Reflect.apply()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Reflect.apply()メソッドは、特定の関数を、指定されたthisコンテキストと引数で呼び出すメソッドです。このメソッドは、Function.prototype.apply()と同様に、関数を呼び出すための柔軟な手段を提供しますが、より堅牢で予測可能な動作を目的としています。
第一引数targetには、実際に呼び出したい関数(callable target)を指定します。
第二引数thisArgumentには、target関数が実行される際に、その内部でthisとして参照される値を指定します。
第三引数argumentsListには、target関数に渡す引数を、配列または配列ライクなオブジェクトとして指定します。
Reflect.apply()は、主にプロキシオブジェクトを扱う際や、Function.prototype.apply()が意図せず変更されてしまうような状況で、安全かつ標準的な方法で関数を呼び出したい場合に有用です。Reflectオブジェクトのメソッド群は、JavaScriptの内部的な操作を直接的に行うためのAPIであり、言語の低レベルな振る舞いをより明確に制御できる点が特徴です。これにより、より安定したコードの記述が可能になり、特にフレームワークやライブラリ開発において、予測可能な関数呼び出しメカニズムを提供します。
構文(syntax)
1function myFunction(arg1, arg2) { 2 return arg1 + arg2; 3} 4 5const result = Reflect.apply(myFunction, null, [10, 20]);
引数(parameters)
target, thisArgument, argumentsList
- target: function: 実行する関数
- thisArgument: any: 関数実行時の
thisの値 - argumentsList: array-like: 関数に渡す引数のリスト
戻り値(return)
any
指定された関数、メソッド、プロパティ、定数の戻り値(return type)について、公式ドキュメント風に説明します。
Reflect.apply() は、target 関数を指定された引数リストで実行した結果を返します。