node.js模块中on emit off的封装

版权声明:文章为原创作品,转载请注明出处 https://blog.csdn.net/weixin_43654258/article/details/86172734

好好学习 ,天天向上。Are you ready?在这里插入图片描述

事件绑定一个事件名称对应多个事件的函数,因此它们的关系是一对多的关系,数据类型采用对象的形式

key:val //因为函数有多个 所以 val选用数组

需要一个事件仓库

 eventList = {
            key:val,
            key:val
        }

绑定事件:
on(eventName,callback){}
第一步判断当前事件是否存在 如果不存在 就初始化 使key:[] 然后再将callback push到数据中即可

let eventList ={};
const  $on=(eventName,callback) =>{
	if(!eventList[eventName]){
		eventList[eventName]=[ ];
	}
	eventList[eventName].push(callback)
}

触发事件:
emit(eventName,params){}
第一步判断当前事件是否存在 如果存在 遍历数组中的索引 调用函数即可 如果params存在 将paramsc传递函数中

let eventList={}
const $emit=(eventName,pramas) =>{
	if(eventList[eventName]){
	let arr = eventList[eventName];
	arr.map((callback)=>{
		callback(pramas)
	})
	}
}

解绑事件:
off(eventName,callback){}
第一步判断当前事件是否存在 如果存在 再次判断他的第二个参数是否存在 如果存在将这个callback 从当前的数组中移除 如果第二个参数不存在 清空数据

let eventList={};
const $off =(eventName,callback) =>{
	if(eventList[eventName]){
		if(callback){
		let index= eventList[eventName].indexOf(callback);
		eventList[eventName].splice(index,1)
	}else{
	eventList[eventName].length=0;
}
		}
	}

猜你喜欢

转载自blog.csdn.net/weixin_43654258/article/details/86172734
今日推荐