home

proxy1

以下のようにProxyの第1引数に対象のインスタンス、第2引数にハンドラーを渡すことで オブジェクトをラップしたものを作ることができる。

この例だと、値の取得やセットするときの動作を変更することができる。 本来の動作をするときはReflectの対応するメソッドを呼ぶ


const getSetObj = new Proxy(obj, {
  get(target, prop, receiver) {
    if (prop === "value01") {
      return `get:${target[prop]}`;
    }
    return Reflect.get(...arguments);
  },
  set(obj, prop, value) {
    if (prop === "value02") {
      obj[prop] = `set:${value}`;
      return true;
    }
    return Reflect.set(...arguments);
  },
})
        
Proxyなし getのみ setのみ get/set
value01
value02