// 观察者模式 const queuedObservers = new Set() const observe = fn => queuedObservers.add(fn) const observable = obj => new Proxy(obj, {set}) function set(target, key, value, receiver) { const result = Reflect.set(target, key, value, receiver) queuedObservers.forEach(observeFn => observeFn()) // 执行通知函数 return result } const person = observable({ name: '张三', age: 20 }) function print() { console.log(`${person.name}, ${person.age}`) } observe(print) person.name = '李四'
ES6利用Proxy和Reflect实现观察者模式
最新推荐文章于 2021-11-22 18:03:00 发布