【JavaScript ECMAScript】Proxy::handler.getインスタンスメソッドの使い方
handler.get()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
handler.get()メソッドは、JavaScriptのProxyオブジェクトにおいて、プロパティへのアクセス(値の読み取り)操作をカスタマイズする際に実行されるメソッドです。Proxyは、オブジェクトの基本的な操作をインターセプト(横取り)し、その振る舞いを変更できる強力な機能を提供します。
このgetメソッドは、Proxyオブジェクトのプロパティにアクセスし、その値を読み取ろうとした際に自動的に呼び出されます。例えば、存在しないプロパティにアクセスされた場合にデフォルト値を返したり、特定のプロパティへのアクセスをログに記録したり、データ形式を変換して返したりといった、独自の処理を定義することが可能です。
handler.get()メソッドは、以下の3つの引数を受け取ります。1つ目のtargetは、Proxyがラップしている元のオブジェクト(実際にプロパティが存在するオブジェクト)です。2つ目のpropertyは、アクセスしようとしているプロパティの名前を文字列またはSymbolで受け取ります。3つ目のreceiverは、getトラップが呼び出されたProxyインスタンス自身、またはProxyを継承するオブジェクトを指します。
このメソッドから返される値が、プロパティアクセス時の結果として外部に渡されます。これにより、オブジェクトの内部構造を変更することなく、その外部からの挙動を柔軟に制御し、既存のオブジェクトに新たな機能や安全性を加えることが可能になります。
構文(syntax)
1new Proxy({}, { 2 get(target, property, receiver) { 3 return Reflect.get(target, property, receiver); 4 } 5});
引数(parameters)
target, property, receiver
- target: Proxyがラップしている元のオブジェクト
- property: アクセスしようとしているプロパティの名前
- receiver: プロキシまたはその子孫のいずれかであるプロパティのthisバインディング
戻り値(return)
任意の型
Proxy オブジェクトのプロパティにアクセスした際に、その値として返される任意の値です。