了解ES6 javascript代理

时间:2018-01-30 17:29:05

标签: javascript es6-proxy

我尝试使用此代码通过代理注册功能更改:

Wand.a = 10

当我输入

>Setting value a as 10

我得到输出

w.a = 10

但如果我输入

var w = new Wand(["some","args"]); 

Handler" get"什么都不输出

我如何让代码适用于" w.a = 10"?这是codewars.com挑战的一部分,所以

{{1}}

是预定义的,我无法对其进行修改。

PS:请不要破坏如何完成这项挑战,我只想知道如何完成这一部分。或者提出另一种方法来完成这项工作。

谢谢!

1 个答案:

答案 0 :(得分:0)

请注意handler.construct()只是

return new objTarget(...args)

返回的值没有什么特别之处,它只是代理的目标wand的一个实例,所以类似

return new Proxy(new objTarget(...args), someHandler)

允许您根据w中定义的陷阱拦截someHandler上的操作。