Proxy

Proxy

Proxy用于修改某些操作的默认行为,即对编程语言进行编程。

ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。

var proxy = new Proxy(target, handler);

new Proxy()表示生成一个Proxy实例,target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为。

var proxy = new Proxy({}, {
  get: function(target, property) {
    return 35;
  }
});

proxy.time // 35
proxy.name // 35
proxy.title // 35

Proxy支持的拦截操作

get(target, propKey, receiver)

拦截对象属性的读取,比如proxy.fooproxy['foo'],而且get方法可以继承。

set(target, propKey, value, receiver)

拦截对象属性的设置,比如proxy.foo = vproxy['foo'] = v,返回一个布尔值。

has(target, propKey)

拦截propKey in proxy的操作,返回一个布尔值。

使用has方法隐藏某些属性,不被in运算符发现。

deleteProperty(target, propKey)

拦截delete proxy[propKey]的操作,返回一个布尔值。

全部内容可以查看链接:http://es6.ruanyifeng.com/?search=import&x=15&y=8#docs/proxy

Last updated

Was this helpful?