亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

zhangrxiang / 611人閱讀

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

相關(guān)文章

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

    摘要:設(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ì)象都將得到通知。 例...

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

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

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

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

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

    摘要:發(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ā)中,我們...

    dreamGong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<