const event =
(function()
// 訂閱
/** * 訂閱 將型別與函式新增進 事件物件中
* 如果有此型別事件則新增進陣列
* 如果沒有 則重置為空陣列後新增進
*/letsubscribe
=function
( type, fn )
// 發布
letpubilsh
=function
( type ))}
}// 關閉
/** * 乙個type 下可繫結多個事件
* 取出 需要關閉的type 對應的fn 將此事件清除 即可
*/letoff
=function
( type, fn ));
}}return})
()
inte***ce
eventoptions
inte***ce
eventitem
extends
eventoptions
class
event
;constructor()
window.ev =
this
.events;
}one
( type: string, fn: function))}
// 訂閱
on( type: string, fn: function, options?
: eventoptions)
this
.events[type]
.push()
}emit
( type: string, data? any)})
}off
( type: string, fn?
: function)
this
.events[type]
=this
.events[type]
.filter
(e:eventitem)
=> e.fn ==
!fn )
}}
js設計模式 發布訂閱模式
發布訂閱模式中有乙個註冊中心,有訂閱和發布方法,訂閱者需要帶著方法去訂閱乙個事件,當這個事件被發布時,訂閱者執行這個方法 import from lodash import from mntr current dimension description 註冊中心 author jsong laste...
js設計模式 發布訂閱模式
發布訂閱模式又叫觀察者模式,它定義物件間一對多的依賴關係,當乙個物件狀態發生改變時,所有依賴於它的物件都將得到通知。在js設計模式與開發實踐一書中使用的是樓盤資訊更新發布的案例。大概內容是 想要買房的人們會訂閱自己想要的房產資訊,如果房產資訊有更新,就會發布給這些人。比如佩奇想買乙個房子,他可以在售...
js 設計模式 訂閱 發布模式
訂閱 發布模式定義了物件之間的一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴它的物件都可以得到通知。訂閱 發布模式與觀察者模式概念相似,但在訂閱 發布模式中,訂閱者與發布者之間多了一層中介軟體 乙個被抽象出來的資訊排程中心。松耦合 訂閱者可以訂閱多個型別的訊息,發布者不需要關心有多少訂閱...