用ES6中的Proxy。
Proxy
proxy是用于修改某些操作的默认行为,或者也可以说:在目标对象之前架设一层 “ 拦截 ” ,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 Proxy 这个词的原意是代理,用在这里表示由它来 “ 代理 ” 某些操作,可以译为 “ 代理器 ” 。
var obj = {
name: 1};
// newObj,这就是已经添加了Proxy的obj
var newObj = new Proxy(obj, {
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);
}
})