监听对象值改变
Object.defineProperty
let obj = {
n: 1,
};
Object.defineProperty(obj, 'n', {
get() {
return n;
},
set(newValue) {
n = newValue;
console.log('n 值改变为:' + newValue);
},
});
obj.n = 2;
Proxy
let proxy = new Proxy(obj, {
get(target, propKey, receiver) {
return Reflect.get(target.propKey, receiver);
},
set(target, propKey, value, receiver) {
if (propKey == 'n') {
console.log('n 值改变为:' + value);
}
return Reflect.set(target, propKey, value, receiver);
},
});
proxy.n = 3;