转:https://juejin.im/entry/580b5553570c350068e6c2d6
什么是观察者模式?
观察者模式又叫做发订阅模式,它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生改变时就会通知所有观察着对象。它是由两类对象组成,主题和观察者,主题负责发布事件,同时观察者通过订阅这些事件来观察该主体,发布者和订阅者是完全解藕,彼此不知道对方的存在,两者仅仅共享一个自定义事件的名称。
nodejs核心模块Event提供EventEmitter对象,也实现了分布式事件。如下代码:
Pub/Sub模式代码实现:
标准浏览器(除了IE8及以下) 自定义事件的实现:
IE8及以下浏览器的实现:
兼容多种浏览器的实现:
调用如下: