【Node.js24.x】Object::Proxy()メソッドの使い方
Proxyメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Proxyメソッドは、他のオブジェクトの基本的な操作(プロパティの取得、設定、メソッドの呼び出しなど)をインターセプトし、カスタム動作を定義する特別なオブジェクト、すなわちProxyオブジェクトを作成するメソッドです。
このメソッドは、監視対象となる元のオブジェクト(ターゲット)と、そのオブジェクトへの操作をどのように処理するかを定義するハンドラーオブジェクトの二つを引数に取ります。ハンドラーオブジェクトには、get(プロパティ読み取り時)、set(プロパティ書き込み時)、apply(関数呼び出し時)といった「トラップ」と呼ばれる特定のメソッドを定義できます。これらのトラップメソッドは、Proxyオブジェクトに対して対応する操作が行われた際に実行されるカスタムロジックを提供します。
Proxyを使用することで、元のオブジェクトのコードを変更することなく、その振る舞いを柔軟に制御・拡張できるようになります。例えば、オブジェクトのプロパティに値が設定される際にバリデーション処理を追加したり、特定のプロパティへのアクセスを制限してセキュリティを強化したり、オブジェクトに対するすべての操作をログとして記録したりする用途に利用できます。これにより、オブジェクトの動作を監視・制御する高度な機能を実現し、システムの堅牢性や保守性を向上させる際に非常に強力なツールとなります。
構文(syntax)
1const target = {}; 2const handler = { 3 get(target, property, receiver) { 4 return Reflect.get(target, property, receiver); 5 } 6}; 7const proxy = new Proxy(target, handler);
引数(parameters)
target, handler
- target: object: プロキシ化する対象のオブジェクト
- handler: object: プロキシの動作を定義するオブジェクト
戻り値(return)
Proxy
Proxyオブジェクトを返します。このオブジェクトは、別のオブジェクト(target)に対する操作をインターセプトし、カスタムの動作を定義するために使用されます。