如何在类中监听一个变量的变化

class Connect{
    construtor(){
        this.message = [];
         setTimeout(()=>{
            this.init();
        },1000)
        const proxy = new Proxy(this,{
            set(target,key){
                if(key==='message') alert('message change')
            }
        })
        return proxy;
    }
    init(){
        this.message = [1,2,3]
    }

}

let c = new Connect();

我如何监听内部message的变化,这样好像只能监听到实例c的变化 请教大佬
或者说如何在class 内部监听一个变量的变化,而不是在实例上

阅读 2.8k
1 个回答

这也许是你想要的答案:

class Connect {
    construtor() {
        this.message = [];
         setTimeout(() => {
            this.init();
        },1000)
    }
    init() {
        this.message = [1, 2, 3]
    }
}


let handler = {
  set(target, key, value, receiver) {
    if (key === 'message') {
      alert('meeage change')
    }
    return Reflect.set(target, key, value, receiver);
  }
}

let proxy = new Proxy(Connect, handler);
proxy.message = [1] // 触发 alert
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题