Proxy 提供了一种机制,可以对外界的访问进行过滤和访问。即在目标对象之前架设一层"拦截",外界对该对象的访问都必须通过这层拦截。
ES6原生提供Proxy构造函数,用来生成Proxy 实例。
Proxy 实例也可以作为其他对象的原型对象。
要使得Proxy 起作用,必须针对 Proxy 实例 进行操作,而不是针对目标对象进项操作。
var proxy = new Proxy(target, handler);
target:表示所要拦截的目标对象
handler:也是一个对象,用来定制拦截行为 。若 handler 没有设置任何拦截,那就等同于直接通向原对象。
对于可以设置但没有设置的拦截操作,则直接落在目标对象上,按照原先的方式产生结果。
/**若没有设置任何拦截,那就等于直接通向原对象**/
var target = {};
var handler = {};
var proxy = new Proxy(target,handler);
target.a = 'b'; proxy.a //'b'
proxy.a = 'a'; target.a //