监听对象值改变

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;
Last Updated:
Contributors: zhangfei