轉:https://juejin.im/entry/580b5553570c350068e6c2d6
什么是觀察者模式?
觀察者模式又叫做發訂閱模式,它定義了一種一對多的關系,讓多個觀察者對象同時監聽某一個主題對象,這個主題對象的狀態發生改變時就會通知所有觀察著對象。它是由兩類對象組成,主題和觀察者,主題負責發布事件,同時觀察者通過訂閱這些事件來觀察該主體,發布者和訂閱者是完全解藕,彼此不知道對方的存在,兩者僅僅共享一個自定義事件的名稱。
nodejs核心模塊Event提供EventEmitter對象,也實現了分布式事件。如下代碼:
Pub/Sub模式代碼實現:
標準瀏覽器(除了IE8及以下) 自定義事件的實現:
IE8及以下瀏覽器的實現:
兼容多種瀏覽器的實現:
調用如下: