//事件队列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){
console.log(222,params);
}
function fn3(params){
console.log(333,params);
}
$on("handler",fn1);
$on("handler",fn2);
$on("handler",fn3);
$off("handler",fn1);
$emit(fn1,'aaa')
//运行node observer.js查看结果
export default{
$on,
$emit,
$off
}
来源:https://www.cnblogs.com/liuXiaoDi/p/12302410.html