1.Object.defineProperty 和 ES6 的 Proxy 有什么区别?
Object.definePropert监听手段比较单一,只能监听set和get, Proxy有13种
- Proxy返回的是一个新对象,我们可以只操作新的对象达到目的,而Object.defineProperty只能遍历对象属性直接修改;
- Object.defineProperty对对象自身做修改, 而Proxy只是在Object基础上加一层拦截,不修改原对象(如果有嵌套,通过递归则会修改原对象)
2.观察者模式 发布-订阅模式 的区别
- 观察者模式里只有两个角色:观察者和被观察者。发布订阅模式里有三种角色:发布者、订阅者、调度器(第三者)。
- 观察者和被观察者是松耦合的关系。发布者和订阅者则完全不存在耦合。