第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

js的事件訂閱

標簽:
JavaScript

学习了https://blog.csdn.net/Mandyucan/article/details/80820139这位兄弟的博客。
这段时间用到事件订阅的例子不少于是就来学习了一下,事件订阅在js总的webview;node的事件发送和接收;vue的组件间的事件通信以及事件巴士等是很常用的。

var eventCenter = {
      sub: function(name, callback) {
        this.argus = this.argus || {};//已经有事件用已经有的this.argus
        this.argus[name] = this.argus[name] || [];
        this.argus[name].push(callback);//对应添加的事件名已经有了就在加到该事件的数组中
      },
      pub: function(name, obj) {
        var args = Array.prototype.slice.call(arguments, 0);//arguments(Object)是传入的参数这里取到第一个;也可以直接通过函数传入参数的形式
        var name = args.shift();
        if (!this.argus || !this.argus[name]) {//没有传入参数就不往下执行
          return this;
        }
        for (var i = 0; i < this.argus[name].length; i++) {
          this.argus[name][i].apply(this, args);//触发订阅事件的回调事件,apply(this, args)是为了拿到传入的参数;this.argus[name][i](args)也可以实现
        }
      }
    };
    eventCenter.sub("a", function(res) {//添加事件
      console.log(12345678,res)
    });
    eventCenter.pub("a", {name: 1});//触发订阅事件发送参数

这里有用到call和apply这两个方法在很多封装的地方很常用到。
第一个参数是改变this的指向了第二个参数是传入到这个方法的参数并执行这个方法。
call能传入多个参数;apply要传入数组。


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消