events 事件的绑定on,事件的触发emit,事件的移除off的一看就懂的封装方法

//存放事件
    eventList = {
        key:val
        handle:[]
    }



    1对多
    on(eventName,callback);
        handle:-------N多个
    1、判断事件名称是否存在

    2、如果存在的情况下将cb存放在eventName这个数组当中

    3、如果不存在创建key值为eventName val值为数组



    1对多
    emit(eventName,params);

    当调用emit的时候获取到eventName这的值,对值判断,如果值不存在直接return
    如果存在遍历这个值全局进行调用,然后将params传入这些函数




    off(eventName,[callback])
    当调用off的时候获取到eventName这的值,对值判断,如果值不存在直接return
    如果存在判断callback是否存在  如果存在删除指定的函数
    如果不存在将当前数组清空


*/

const EventList = {

}

1.事件的绑定
const on = function(eventName,callback){
    if(!EventList[eventName]){
        EventList[eventName] = [];
    }

    EventList[eventName].push(callback);
}

2.事件的触发
const emit = function(eventName,params){
    if(!EventList[eventName])return;

    EventList[eventName].map((cb)=>{
        cb(params)
    })
}

3.事件移除
const off = function(eventName,callback){
    if(!EventList[eventName])return;

    if(callback){
        let index = EventList[eventName].indexOf(callback);
        EventList[eventName].splice(index,1);
    }else{
        EventList[eventName] = [];
    }
}

转载于:https://www.cnblogs.com/zhouyingying/p/10567748.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值