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)