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;
      }
    }
  • 相关阅读:
    NodeJs 的Module.export 和 export
    Angular 调试
    设计模式 -- 访问者
    typescript 枚举
    Swagger 实践 <二>
    eventFlow 系列 <三> 查询所有
    成员变量的隐藏和方法的重写
    Facetoprocess_program_design
    ATM_tests
    transmission protocol
  • 原文地址:https://www.cnblogs.com/shy0113/p/10508489.html
Copyright © 2011-2022 走看看