【JavaScript ECMAScript】Reflect::Reflect.set静的メソッドの使い方
Reflect.set()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Reflect.set()メソッドは、オブジェクトの特定のプロパティに値を設定する操作を実行するメソッドです。これは、obj[key] = value といった通常の代入演算子に相当する操作を、より低レベルで、かつ統一的な方法で実現します。
このメソッドは主に、プロキシオブジェクトのハンドラー内で、プロパティのセッター動作をカスタマイズしたり、デフォルトのセッター動作を呼び出したりする際に利用されます。引数として、値を設定するターゲットオブジェクト、設定するプロパティの名前(キー)、設定する新しい値、そしてオプションでプロパティのセッター関数が呼び出される際のthisの値となるレシーバーオブジェクトを受け取ります。
具体的には、Reflect.set(target, propertyKey, value, receiver) の形式で使用します。targetは値を設定されるオブジェクト、propertyKeyは設定対象のプロパティ名、valueはそのプロパティに設定される値です。receiverは省略可能ですが、プロパティにセッターが存在する場合にそのコンテキストを指定するために重要です。
プロパティ設定操作が成功した場合はtrueを、何らかの理由で失敗した場合はfalseを返します。これにより、プロパティ設定の成否を明確に判断できるため、より堅牢なコードの記述に役立ちます。例えば、存在しないプロパティへの代入が失敗する場合や、読み取り専用のプロパティへの代入が試みられた場合などにfalseが返されます。
構文(syntax)
1Reflect.set(target, propertyKey, value);
引数(parameters)
target, propertyKey, value, receiver
- target: object: プロパティを設定する対象となるオブジェクト
- propertyKey: string | symbol: 設定するプロパティの名前またはシンボル
- value: any: 設定するプロパティの値
- receiver: object: setterが呼び出されたときの
thisの値
戻り値(return)
boolean
指定されたプロパティへの値の設定が成功したかどうかを示す真偽値(trueまたはfalse)を返します。