たとえば、このハンドラー/プロキシがある場合 ( MDN の例から)...
var handler = {
get: function(target, name){
return name in target?
target[name] :
37;
}
};
var 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
オブジェクトp
を取り戻すことができる何らかの方法で、プロキシ をプローブすることは可能ですか。handler
次のようなもの:
p.__handler__ // returns handler object -> Object {get: handler.get(), set: handler.set(), ...}
p.__handler__.get // returns get prop/fn of handler -> function(target, name){ ...}
明らかに、ハンドラーに設定されたさまざまなトラップはプロキシに「認識」されていますが、プロキシ自体からそれら/ハンドラーを返す明確な方法はありますか? もしそうなら、どのように?
現時点では、これに関する特定の使用例はありませんが、既にプロキシを取得した後でハンドラー/トラップを動的に変更したい場合に、これが役立つことがわかります。