成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

自己簡單寫的 事件訂閱機制

luck / 1341人閱讀

我寫的 簡易的事件訂觸發(fā)。

    export  const Event = function () {
       // 類型
       this.typeList = {}
    }
    Event.prototype.on = function ({type, fn}){
        if (this.typeList.hasOwnProperty(type)) {
            this.typeList[type].push(fn)
        } else {
            this.typeList[type] = []
            this.typeList[type].push(fn)
        }
    }
    Event.prototype.off = function({type, fn})  {
       if (this.typeList.hasOwnProperty(type)) {
             let list = this.typeList[type]
          let index = list.indexOf(fn)
          if (index !== -1 ) {
                 list.splice(index, 1)
          }
          
       } else {
            console.warn("not has this type")
       }
    }
    Event.prototype.once = function ({type, fn}) {
       const fixFn = (value) => {
            fn.call(this, value)
            this.off({type, fn: fixFn})
       }
       this.on({type, fn: fixFn})
    }
    Event.prototype.trigger = function (type, value, context){
        context = context ? context : null    
        if (this.typeList.hasOwnProperty(type)) {
            this.typeList[type].forEach(fn => {
                fn.call(context, value)
            })
        }
    }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93087.html

相關(guān)文章

  • Node 之 Event 模塊

    摘要:為什么把叫做集合而不能稱為嚴格意義上的對象,來看這個集合的構(gòu)造函數(shù)可以見得,是與處于同一層級的而非是繼承自,所以說由實例出來的對象更加的純凈,并沒有諸如等方法,更像是一個集合。 寫在前面 事件的編程方式具有輕量級、松耦合、只關(guān)注事務(wù)點等優(yōu)勢,在瀏覽器端,有著自己的一套DOM事件機制,其中含包括這諸如事件冒泡,事件捕獲等;然而Node的事件機制沒有事件冒泡等,其原理就是設(shè)計模式中的觀察者...

    mrli2016 評論0 收藏0
  • JavaScript 工作原理之九-網(wǎng)頁消息推送通知機制

    摘要:推送通知這一功能在移動端已經(jīng)非常普遍。消息推送和通知消息推送和通知是兩個不同的接口。消息通知網(wǎng)絡(luò)應(yīng)用中的服務(wù)工作線程或者腳本進行操作向用戶顯示消息通知。是消息推送服務(wù)之一??梢詮膶ο蟮膶傩灾但@得處理消息推送的請求地址。 原文請查閱這里,略有刪減,本文采用知識共享署名 4.0 國際許可協(xié)議共享,BY Troland。 本系列持續(xù)更新中,Github 地址請查閱這里。 這是 JavaScr...

    joyqi 評論0 收藏0
  • Redux入門0x101: 簡介及`redux`簡單實現(xiàn)

    摘要:在我看來它們的關(guān)系不會比共用開頭更深了,所以我就重新開了一個頭,但其實是基于前面寫的資源中文文檔英文文檔官方視頻學(xué)習(xí)歷程當(dāng)初為了學(xué)習(xí),看了許多的材料,中途曾經(jīng)放棄兩次,但是最后還是勇敢的拿起了它,現(xiàn)在終于勉強弄懂。 0x000 概述 這一章開始講redux,其實是承接前面的react,但其實作為一個框架來說,redux和react并沒有太多的關(guān)系,本身是獨立存在的。在我看來它們的關(guān)系不...

    ssshooter 評論0 收藏0
  • 微服務(wù)框架lagom

    摘要:在這種情況下,每一個微服務(wù)定義一個限界上下文,類似于領(lǐng)域驅(qū)動的限界上下文。設(shè)計你的微服務(wù)系統(tǒng)的響應(yīng)式微服務(wù)架構(gòu)這本書對于微服務(wù)系統(tǒng)架構(gòu)很有幫助。 1.Lagom概念介紹 lagom框架包含一系列的可以支持我們從開發(fā)到部署的庫以及開發(fā)環(huán)境: >在開發(fā)階段,可以通過一個簡單的命令構(gòu)建我們的項目,啟動所有你的服務(wù),并且可以支持所有的lagom基礎(chǔ)設(shè)置層。當(dāng)你修改了代碼,logom是有熱加載的...

    Michael_Lin 評論0 收藏0

發(fā)表評論

0條評論

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