node 中 on emit off 事件的封装

1.on事件

var eventList= {};

const $on = ( eventName, cb ){
  if(!eventList[eventName]){ //判断事件名称是否存在
    eventList[eventName] = []; //不存在创建一个空的数组
  }
       eventList[eventName].push(cb)//将事件push入数组中      
}

2.emit

const $emit = (eventName,params)=>{
    if(!eventList[eventName])return;//事件名称不存在的话就不在运行
    
    let arr = eventList[eventName];
        arr.map((cb)=>{ //通过遍历将数组中的每个事件都触发
            cb(params)
        })
}

3.off

const $off = (eventName,cb)=>{
    if(!eventList[eventName])return;//事件名称不存在就不在运行
        if(cb){//判断事件是否存在 存在则删除该事件 不存在则清空所有事件
            let index = eventList[eventName].indexOf(cb);
            eventList[eventName].splice(index,1);

        }else{
            eventList[eventName] = [];
            
        }
}
原文地址:https://www.cnblogs.com/wildccy/p/10542956.html