JavaScriptのProxyオブジェクトを使用したオブジェクトのプロパティの監視と変更


まず、Proxyオブジェクトの基本的な使い方を紹介します。以下のコード例をご覧ください。

const targetObject = {
  name: 'John',
  age: 30,
};
const handler = {
  get(target, property) {
    console.log(`プロパティ"${property}"の値を取得しました`);
    return target[property];
  },
  set(target, property, value) {
    console.log(`プロパティ"${property}"の値を変更しました`);
    target[property] = value;
  },
};
const proxyObject = new Proxy(targetObject, handler);
console.log(proxyObject.name);  // プロパティ"name"の値を取得しました  => "John"
proxyObject.age = 35;  // プロパティ"age"の値を変更しました
console.log(proxyObject);  // { name: 'John', age: 35 }

上記のコードでは、targetObjectというオブジェクトに対してProxyオブジェクトを作成し、handlerというハンドラオブジェクトを定義しています。ハンドラオブジェクトにはgetメソッドとsetメソッドを定義し、それぞれプロパティの取得と変更時に実行される処理を記述します。

new Proxy(targetObject, handler)とすることで、Proxyオブジェクトを生成し、proxyObjectという変数に代入しています。

上記のコードを実行すると、proxyObjectを経由してプロパティにアクセスするたびに、対応するハンドラメソッドが実行され、監視や変更のログが表示されます。

このようにProxyオブジェクトを使用することで、オブジェクトのプロパティの読み取りや書き込み時にカスタムの処理を追加することができます。プロパティの監視や変更に応じて、さまざまな処理やロジックを追加することが可能です。

以上がProxyオブジェクトを使用してオブジェクトのプロパティの監視と変更を行う方法の基本的な説明です。この機能を活用することで、より柔軟なプロパティの操作が可能となります。