JavaScript

Proxy オブジェクト

 編集:2022.08.09 by T.A.

Proxy オブジェクトにより別なオブジェクトのプロキシを作成することができ、そのオブジェクトの基本的な操作を傍受したり再定義したりすることができます。

¶省く

コンストラクター
Proxy()
新しい Proxy オブジェクトを生成します。
静的メソッド
Proxy.revocable()
取り消し可能な Proxy オブジェクトを生成します。
基本的な例

この例では、与えられたプロパティ名がオブジェクトに存在しない場合、既定値である 37 を返します。ここでは get ハンドラーを使用しています。

//コンソールにて
const handler = {
  get: function(obj, prop) {
    return prop in obj ?
      obj[prop] :
      37;
  }
};

const p = new Proxy({}, handler);
p.a = 1;
p.b = undefined;

console.log(p.a, p.b);
//  1, undefined

console.log('c' in p, p.c);
//  false, 37
何もしない転送プロキシ

この例では、プロキシが、それに対して適用されるすべての操作を転送する先に、ネイティブの JavaScript オブジェクトを使っています。

//コンソールにて
const target = {};
const p = new Proxy(target, {});

p.a = 37;
// 操作はプロキシへ転送されます

console.log(target.a);
// 37 が出力されます。
// 操作は正しく転送されました

上記のコードは JavaScript オブジェクトでは動作しますが、DOM 要素などのネイティブのブラウザーオブジェクトでは動作しないことに注意してください。

¶省く


テスト