摘要:使用我就是數(shù)據(jù)輸出我就是數(shù)據(jù)發(fā)布訂閱模式的通用實現(xiàn)修改下之前的代碼是一門解釋之行的語言,給對象動態(tài)欠佳職責(zé)是很簡單的事情我們需要一個方法需要讓一個對象有發(fā)布訂閱功能只需要對象就有了效果
var office = { fnlist:{}, listen: function(key,fn){ if(!this.fnlist[key]){ this.fnlist[key] = [] } this.fnlist[key].push(fn) }, trigger: function(){ var key = Array.prototype.shift.call(arguments), fnArr = this.fnlist[key]; if(!fnArr || fnArr.length===0){ return false } for(var i =0,fn;fn=fnArr[i++];){ fn.apply(this,arguments) } } }
使用
office.listen("a",function(data){console.log(data)}) office.trigger("a","我就是數(shù)據(jù)") //輸出 我就是數(shù)據(jù)
發(fā)布訂閱模式的通用實現(xiàn)
修改下之前的代碼
var event= { fnlist:{}, listen: function(key,fn){ if(!this.fnlist[key]){ this.fnlist[key] = [] } this.fnlist[key].push(fn) }, trigger: function(){ var key = Array.prototype.shift.call(arguments), fnArr = this.fnlist[key]; if(!fnArr || fnArr.length===0){ return false } for(var i =0,fn;fn=fnArr[i++];){ fn.apply(this,arguments) } } }
js是一門解釋之行的語言,給對象動態(tài)欠佳職責(zé)是很簡單的事情
我們需要一個installEvent方法
var installEvent = function(obj){ for(var i in event){ obj[i] = event[i] } }
需要讓一個對象 有 發(fā)布訂閱功能
只需要
var a = {} installEvent(a); // a 對象就有了效果
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/88002.html
摘要:設(shè)計模式與開發(fā)實踐讀書筆記。發(fā)布訂閱模式又叫觀察者模式,它定義了對象之間的一種一對多的依賴關(guān)系。附設(shè)計模式之發(fā)布訂閱模式觀察者模式數(shù)據(jù)結(jié)構(gòu)和算法系列棧隊列優(yōu)先隊列循環(huán)隊列設(shè)計模式系列設(shè)計模式之策略模式 《JavaScript設(shè)計模式與開發(fā)實踐》讀書筆記。 發(fā)布-訂閱模式又叫觀察者模式,它定義了對象之間的一種一對多的依賴關(guān)系。當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴它的對象都將得到通知。 例...
摘要:設(shè)計模式與開發(fā)實踐讀書筆記??创宋恼虑埃ㄗh先看設(shè)計模式之發(fā)布訂閱模式觀察者模式在中,已經(jīng)介紹了什么是發(fā)布訂閱模式,同時,也實現(xiàn)了發(fā)布訂閱模式。 《JavaScript設(shè)計模式與開發(fā)實踐》讀書筆記。 看此文章前,建議先看JavaScript設(shè)計模式之發(fā)布-訂閱模式(觀察者模式)-Part1 在Part1中,已經(jīng)介紹了什么是發(fā)布-訂閱模式,同時,也實現(xiàn)了發(fā)布-訂閱模式。但是,就Part1...
摘要:設(shè)計模式與開發(fā)實踐讀書筆記??创宋恼虑埃ㄗh先看設(shè)計模式之發(fā)布訂閱模式觀察者模式在中,已經(jīng)介紹了什么是發(fā)布訂閱模式,同時,也實現(xiàn)了發(fā)布訂閱模式。 《JavaScript設(shè)計模式與開發(fā)實踐》讀書筆記。 看此文章前,建議先看JavaScript設(shè)計模式之發(fā)布-訂閱模式(觀察者模式)-Part1 在Part1中,已經(jīng)介紹了什么是發(fā)布-訂閱模式,同時,也實現(xiàn)了發(fā)布-訂閱模式。但是,就Part1...
摘要:發(fā)布訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關(guān)系。事件觀察者模式應(yīng)該是最常用的模式之一。總之,當(dāng)消息一發(fā)布,所有的訂閱者都會收到消息。發(fā)布訂閱模式還可以用來幫助實現(xiàn)一些別的設(shè)計模式,比如中介者模式。 發(fā)布/訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關(guān)系。當(dāng)一個對象的狀態(tài)(發(fā)布者)發(fā)生改變時,所有依賴于它的對象都將得到通知。在 JavaScript 開發(fā)中,我們...
閱讀 4643·2021-10-25 09:48
閱讀 3221·2021-09-07 09:59
閱讀 2208·2021-09-06 15:01
閱讀 2706·2021-09-02 15:21
閱讀 2741·2019-08-30 14:14
閱讀 2194·2019-08-29 13:59
閱讀 2527·2019-08-29 11:02
閱讀 2544·2019-08-26 13:33