// 觀察者模式 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實現觀察者模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.