zoukankan      html  css  js  c++  java
  • 封装on,emit,off事件

    事件绑定是一个对象绑定多个事件函数,因此是一对多的模式,即观察者模式,数据类型采用对象
     
    封装on:
    思路:创建一个事件仓库存放事件:
    判断当前事件是否存在,不存在,初始化一下,然后将回调函数push到数组中;
    let eventCon = {};
    const eventOn = (eventName,callback)=>{
        if(!eventCon[eventName]){
             eventCon[eventName] = [];
        }
        eventCon[eventName].push(callback)
    }

    封装emit:
    思路:判断当前事件是否存在,如果存在,遍历数组的函数调用即可,如果第二个参数存在,将参数传递到函数中;
    const eventEmit = (eventName,params)=>{
        if(eventCon[eventName]){
            let arr = eventCon[eventName]
            arr.map((callback)=>{
                callback(params)
            })
        }
    }
     
    封装off:
    思路:判断当前事件是否存在,如果存在,判断第二个参数是否存在,如果第二个参数存在,将callback从当前数组移除;不存在,
    清除数组。
    const eventOff = (eventName,callback)=>{
        if(eventCon[eventName]){
            if(callback){
                let index = eventCon[eventName].indexof(callback);
                eventCon[eventName].splice(index,1);
            }else{
                eventCon[eventName].length = 0;
            }
        }
    }


  • 相关阅读:
    HDOJ.1029 Ignatius and the Princess IV(map)
    STL之map
    STL之map
    UVA.1584 环状序列
    UVA.1584 环状序列
    AOJ. 数组训练.2016-11-17
    AOJ. 数组训练.2016-11-17
    AOJ.592 神奇的叶子
    AOJ.592 神奇的叶子
    技能书
  • 原文地址:https://www.cnblogs.com/kinoko-1009/p/10501513.html
Copyright © 2011-2022 走看看