zoukankan      html  css  js  c++  java
  • 封装on emit off方法(observer)

    let eventList = [];
    绑定事件
    on(eventName,cb){}

    第一步判断当前事件是否存在 如果不存在 初始化一下 key:[] 然后再将cb push到数据中去即可
     
    const $on=(eventName,cb)=>{
      if(!eventList[eventName]){
        eventList[eventName] = [];
     }
     eventList[eventName].push(cb)
    }
     
     
    触发事件
    emit(eventName,params){}

    第一步判断当前事件是否存在 如果存在 遍历数组中的所有函数调用即可 如果params如果存在 将params传递到函数中
     
    const $emit = (eventName,params)=>{
      if(eventList[eventName]){
        let arr = eventList[eventName];
        arr.map((cb)=>{
          cb(params)
        })
      }
    }
     
    解绑事件
    off(eventName,cb){}

    第一步判断当前事件是否存在 如果存在 再次判断第二个参数是否存在 如果存在将这个cb从当前数组中移除
    如果第二个参数不存在 清空数据
     
    const $off = (eventName,cb)=>{
      if(cb){
        let index = eventList[eventName].indexOf(cb);
        eventList[eventName].splice(index,1);
      }else{
        eventList[eventName].length = 0;
      }
    }
  • 相关阅读:
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    bzoj3561DZY Loves Math VI
    bzoj3529[Sdoi2014]数表
    bzoj3309DZY Loves Math
    bzoj2823[AHOI2012]信号塔
    bzoj2301[HAOI2011]Problem b
  • 原文地址:https://www.cnblogs.com/shy0113/p/10508489.html
Copyright © 2011-2022 走看看