→
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 要素などのネイティブのブラウザーオブジェクトでは動作しないことに注意してください。
¶省く