SOURCE

const bucket = new Set()
const data = {text:'abc'}
//使用proxy代理对象
const obj = new Proxy(data, {
    //获取的时候添加副作用函数
    get(target,key){
        bucket.add(effect);
        return target[key]
    },
    //修改的时候执行副作用函数
    set(target, key, value){
        target[key] = value;
        bucket.forEach(fn=>fn());
        return true;
    }
})
const effect = () => {
    console.log(obj.text)
}
effect()
setTimeout(()=>{
    obj.text = '123'
},1000)
console 命令行工具 X clear

                    
>
console