Proxy
概述
Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改.
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.count = 1
// setting count!
++obj.count
// getting count!
// setting count!
// 2
ES6原生提供了Proxy构造函数,用来生成Proxy实例
var proxy = new Proxy(target, handler);
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.foo和pr