手动封装观察者模式
//事件队列const enentList={}//封装监听 const $on=function(eventName,callback){ if(!enentList[eventName]){ enentList[eventName]=[]; } enentList[eventName].push(callback); }//封装发布 const $emit=function(eventName,params){ if(enentList[eventName]){ var arr= enentList[eventName]; arr.forEach((cb)=>{ cb(params) }) } }//封装解绑 const $off=function(eventName,callback){ if(enentList[eventName]){ if(callback){ var index= enentList[eventName].indexOf(callback); enentList[eventName].splice(index,1); }else{ enentList[eventName].length=0; } } } //测试, function fn1(params){ console.log(111,params); } function fn2(params)