观察者模式指的是函数自动观察数据对象的模式,一旦对象有变化,函数就会自动执行。
const queuedObservers = new Set()
const observe = fn => queuedObservers.add(fn)
const observable = obj => new Proxy(obj, {set})
function set(tartget, key, value, receiver) {
const result = Reflect.set(target, key, value, receiver)
queuedObservers.forEach(observer => observer())
return result
}