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