国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript設(shè)計模式之 發(fā)布訂閱模式

zhangrxiang / 572人閱讀

摘要:使用我就是數(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

相關(guān)文章

  • JavaScript設(shè)計模式發(fā)布-訂閱模式(觀察者模式)-Part1

    摘要:設(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ā)生改變時,所有依賴它的對象都將得到通知。 例...

    muzhuyu 評論0 收藏0
  • JavaScript設(shè)計模式發(fā)布-訂閱模式(觀察者模式)-Part2

    摘要:設(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...

    Charlie_Jade 評論0 收藏0
  • JavaScript設(shè)計模式發(fā)布-訂閱模式(觀察者模式)-Part2

    摘要:設(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...

    chemzqm 評論0 收藏0
  • 設(shè)計模式觀察者(發(fā)布/訂閱模式

    摘要:發(fā)布訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關(guān)系。事件觀察者模式應(yīng)該是最常用的模式之一。總之,當(dāng)消息一發(fā)布,所有的訂閱者都會收到消息。發(fā)布訂閱模式還可以用來幫助實現(xiàn)一些別的設(shè)計模式,比如中介者模式。 發(fā)布/訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關(guān)系。當(dāng)一個對象的狀態(tài)(發(fā)布者)發(fā)生改變時,所有依賴于它的對象都將得到通知。在 JavaScript 開發(fā)中,我們...

    dreamGong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<