ECMAScript6 笔记(五):Proxy

  • A+
所属分类:前端

Proxy 可以译为 代理 的意思,它可以修改某些操作的默认行为,属于“元编程(meta programming)”。

get()

get 方法用于拦截某个属性的读取操作,其接收三个参数:目标对象、属性名 和 proxy 实例本身。

从上面的输出结果(proxy.agePerson.age )来看,要使 Proxy 生效只能对 Proxy 实例进行操作。

要想使得直接操作目标对象就能获得拦截效果,可以将 Proxy 实例作为其它对象的原型对象:

还有一个小技巧就是把 proxy 当做目标对象的一个属性:

使用 get 拦截,实现数组读取负数的索引:

ultravires

发表评论

您必须才能发表评论!