轉(zhuǎn):https://juejin.im/entry/580b5553570c350068e6c2d6
什么是觀察者模式?
觀察者模式又叫做發(fā)訂閱模式,它定義了一種一對(duì)多的關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽某一個(gè)主題對(duì)象,這個(gè)主題對(duì)象的狀態(tài)發(fā)生改變時(shí)就會(huì)通知所有觀察著對(duì)象。它是由兩類對(duì)象組成,主題和觀察者,主題負(fù)責(zé)發(fā)布事件,同時(shí)觀察者通過訂閱這些事件來觀察該主體,發(fā)布者和訂閱者是完全解藕,彼此不知道對(duì)方的存在,兩者僅僅共享一個(gè)自定義事件的名稱。
nodejs核心模塊Event提供EventEmitter對(duì)象,也實(shí)現(xiàn)了分布式事件。如下代碼:

Pub/Sub模式代碼實(shí)現(xiàn):

標(biāo)準(zhǔn)瀏覽器(除了IE8及以下) 自定義事件的實(shí)現(xiàn):

IE8及以下瀏覽器的實(shí)現(xiàn):

兼容多種瀏覽器的實(shí)現(xiàn):

調(diào)用如下:
