Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,即对编程语言进行编程
var obj = new Proxy({}, {
get: function (target, key, receiver) {
console.log(`getting ${key}!`);
return Reflect.get(target, key, receiver);
},
set: function (target, key, value, receiver) {
console.log(`setting ${key}!`);
return Reflect.set(target, key, value, receiver);
}
});
obj.color='blue'
//setting color!
//'blue'
obj.color
getting color!
//'blue'
###Proxy 支持的拦截操作
- get(target, propKey, receiver),拦截对象属性的读取
- set(target, propKey, value, receiver),拦截对象属性的设置
- has(target, propKey),拦截propKey in proxy的操作
- deleteProperty(target, propKey),拦截delete proxy[propKey]的操作,返回一个布尔值。
…其他的翻文档吧