码迷,mamicode.com
首页 > 其他好文 > 详细

发布订阅事件

时间:2020-05-05 18:09:53      阅读:47      评论:0      收藏:0      [点我收藏+]

标签:事件   const   ++   UNC   eve   code   OLE   handle   lse   

监听触发事件:

class EventEmeitter {
    constructor(){
        this._events = this._events || new Map();
        this._maxLength = this._maxLength || 10;
    }
}

EventEmeitter.prototype.$on = function(type,fn){
    const handle = this._events.get(type);
    if(handle){
        handle.push(fn);
    }else{
        this._events.set(type,[fn])
    }
}
EventEmeitter.prototype.$emit = function(type,...args){
    const handle = this._events.get(type);
    for(let i=0;i<handle.length;i++){
        handle[i].apply(this,args);
    }
}

const emitter = new EventEmeitter()
emitter.$on(‘arson‘, man => {
  console.log(`expel ${man}`);
});
emitter.$on(‘arson‘, man => {
  console.log(`save ${man}`);
});

emitter.$on(‘arson‘, man => {
  console.log(`kill ${man}`);
});
// 触发事件
emitter.$emit(‘arson‘, ‘low-end‘);

发布订阅事件

标签:事件   const   ++   UNC   eve   code   OLE   handle   lse   

原文地址:https://www.cnblogs.com/xiaozhumaopao/p/12831389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!