摘要:使用我就是數據輸出我就是數據發布訂閱模式的通用實現修改下之前的代碼是一門解釋之行的語言,給對象動態欠佳職責是很簡單的事情我們需要一個方法需要讓一個對象有發布訂閱功能只需要對象就有了效果
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","我就是數據") //輸出 我就是數據
發布訂閱模式的通用實現
修改下之前的代碼
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是一門解釋之行的語言,給對象動態欠佳職責是很簡單的事情
我們需要一個installEvent方法
var installEvent = function(obj){ for(var i in event){ obj[i] = event[i] } }
需要讓一個對象 有 發布訂閱功能
只需要
var a = {} installEvent(a); // a 對象就有了效果
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88002.html
摘要:設計模式與開發實踐讀書筆記。發布訂閱模式又叫觀察者模式,它定義了對象之間的一種一對多的依賴關系。附設計模式之發布訂閱模式觀察者模式數據結構和算法系列棧隊列優先隊列循環隊列設計模式系列設計模式之策略模式 《JavaScript設計模式與開發實踐》讀書筆記。 發布-訂閱模式又叫觀察者模式,它定義了對象之間的一種一對多的依賴關系。當一個對象的狀態發生改變時,所有依賴它的對象都將得到通知。 例...
摘要:設計模式與開發實踐讀書筆記。看此文章前,建議先看設計模式之發布訂閱模式觀察者模式在中,已經介紹了什么是發布訂閱模式,同時,也實現了發布訂閱模式。 《JavaScript設計模式與開發實踐》讀書筆記。 看此文章前,建議先看JavaScript設計模式之發布-訂閱模式(觀察者模式)-Part1 在Part1中,已經介紹了什么是發布-訂閱模式,同時,也實現了發布-訂閱模式。但是,就Part1...
摘要:設計模式與開發實踐讀書筆記。看此文章前,建議先看設計模式之發布訂閱模式觀察者模式在中,已經介紹了什么是發布訂閱模式,同時,也實現了發布訂閱模式。 《JavaScript設計模式與開發實踐》讀書筆記。 看此文章前,建議先看JavaScript設計模式之發布-訂閱模式(觀察者模式)-Part1 在Part1中,已經介紹了什么是發布-訂閱模式,同時,也實現了發布-訂閱模式。但是,就Part1...
摘要:發布訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關系。事件觀察者模式應該是最常用的模式之一。總之,當消息一發布,所有的訂閱者都會收到消息。發布訂閱模式還可以用來幫助實現一些別的設計模式,比如中介者模式。 發布/訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關系。當一個對象的狀態(發布者)發生改變時,所有依賴于它的對象都將得到通知。在 JavaScript 開發中,我們...
閱讀 4620·2021-10-25 09:48
閱讀 3212·2021-09-07 09:59
閱讀 2167·2021-09-06 15:01
閱讀 2693·2021-09-02 15:21
閱讀 2732·2019-08-30 14:14
閱讀 2184·2019-08-29 13:59
閱讀 2514·2019-08-29 11:02
閱讀 2533·2019-08-26 13:33