let list = new Set()
let observer = fn => list.add(fn)
function observered(obj){
return new Proxy(obj,{
set(target,propKey,value,receiver){
const result = Reflect.set(target,propKey,value,receiver)
list.forEach(fn=>fn())
return result
}
})
}
let person = observered({value: '今天又是需要努力一天'})
let print = function(){
console.log(person.value)
}
observer(print)
person.value = '明天更要努力'