# 观察者模式 ## 通过Proxy和Reflect创建观察者模式 ```javascript const obList = { set, get }; // 初始化观察者方法 const ob = obj => new Proxy(obj, obList); // 监听的方法 const times = { set: 0, get: 0 }; function set(target, key, value, receiver){ const result = Reflect.set(target, key, value, receiver); obFn('set', ++times.set); return result; } function get(target, key, value, receiver){ const result = Reflect.get(target, key, value, receiver); obFn('get', ++times.get); return result; } function obFn(str, num){ console.log(str, '次数', num); } ``` 作者:微博 [@itagn][1] - Github [@itagn][2] [1]: https://weibo.com/p/1005053782707172 [2]: https://github.com/itagn