小编Ste*_*ich的帖子

如何从代理对象获取代理的处理程序?

例如,如果我有这个处理程序/代理(来自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
Run Code Online (Sandbox Code Playgroud)

是否可以探测代理,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){ ...}
Run Code Online (Sandbox Code Playgroud)

显然,在处理程序中设置的各种陷阱仍然对代理"已知",但有一种明确的方式从代理本身返回它们/处理程序吗?如果是这样,怎么样?

我目前没有具体的用例,但如果您想在已经拥有代理之后动态更改处理程序/陷阱,我可以看到这很有用.

javascript ecmascript-6 es6-proxy

12
推荐指数
2
解决办法
3914
查看次数

标签 统计

ecmascript-6 ×1

es6-proxy ×1

javascript ×1