發布訂閱就是將所有事件發到乙個池子(陣列)中,期間可以增減方法,要使用的時候統一依次執行,引數只能傳相同的。期間要解決的問題是陣列去重、陣列塌陷。
let
_subsribe=(
)=>
add(func)
remove
(func)})
}fire
(...args)
}//優化 不用每次都要new 直接呼叫方法就行了
return
newsub()
}//建立
let aa =
_subsribe()
function
fn1(e)
letfn2=(
)=>
letfn3=(
)=>
letfn4
=(ev)
=>
aa.add
(fn1)
aa.add
(fn2)
aa.add
(fn3)
aa.add
(fn4)
//建立input元素
let o = document.
createelement
('input'
)//將input插入到html中
let oo = document.
queryselector
('#root'
)oo.
insertbefore
(o,null
)//可以傳遞onclick的預設event引數
o.onclick
=function
(ev)
3 1 7 發布訂閱模式
發布訂閱模式和觀察者模式是兩種設計模式,在 vue 中有各自的應用場景。兩種模式的本質是相同的,但是還是有區別的,經常被混為一談。我們假定,存在乙個 訊號中心 某個任務執行完畢,就向訊號中心 發布 publish 乙個訊號,其他任務可以向訊號中心 訂閱 subscribe 這個訊號,從開知道什麼時候...
設計模式學習(二) 發布 訂閱模式
發布 訂閱模式又叫觀察者模式,它定義物件間的一對多的依賴關係,當乙個物件的狀態發生變化時,所有訂閱它的物件都將得到通知 實現發布 訂閱模式有以下幾步 event.js let event param key param fn subscribe function key,fn this.client...
Redis 設計與實現 (六) 發布訂閱
發布訂閱 發布者 頻道 訂閱者 發布和訂閱都是客戶端頻道是服務端 1 publish subscribe 模式 開啟乙個命令窗體,redis訂閱者 redis cli 127.0.0.1 6379 subscribe channel 1 reading messages.press ctrl c t...