1.on事件
var eventList= {}; const $on = ( eventName, cb ){ if(!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(!eventName)return;//事件名称不存在就不在运行 if(cb){//判断事件是否存在 存在则删除该事件 不存在则清空所有事件 let index = eventList[eventName].indexOf(cb); eventList[eventName].splice(index,1); }else{ eventList[eventName] = []; } }