zoukankan      html  css  js  c++  java
  • 面向对象:自定义事件

    class MyEvent {
            constructor() {
       //给实例化对象添加一个’handle‘属性  值为数组,里面存放自己的函数 类似 let handle = { "myevnet":[fn1,fn2,fn3.....] };
                this.handle = { };
            }
      //绑定(添加)事件   参数:事件名,方法名
            addEvent(eventName, fn) {
        //判断 如果这个事件不存在 给它变为一个空数组
                if (typeof this.handle[eventName] === 'undefined') {
                    this.handle[eventName] = [];
                }
        //如果有的话就把fn这个方法放进数组
                this.handle[eventName].push(fn);
            }
      //触发事件  
            trigger(eventName) {
        //遍历 handle 里面对应的事件 让event (每一项即对应的方法)执行
                this.handle[eventName].forEach(event => {
                    event && event();//存在并执行
                })
            }
      //移出事件  参数:事件名,方法名  
            removeEvent(eventName, fn) {
       //遍历 handle 里面的事件 如果里面的i === fn 则利用数组的splice方法删除fn 并break
                for (let i = 0; i < this.handle[eventName].length; i++) {
                    if (this.handle[eventName][i] === fn) {
                        this.handle[eventName].splice(i, 1);
                        break;
                    }
                }
            }
        }
        let newEvent = new MyEvent();
     //绑定事件 
     addEvent("myevent",fn1);
     //触发事件
     trigger("myevent");
     //移出事件
     removeEvent("myevent",fn2);
  • 相关阅读:
    体重档案应用客户端源码
    高仿美团应用客户端项目源码
    Aisen仿新浪微博客户端项目源码
    高仿百度传课应用客户端源码iOS版
    iOS高仿城觅应用客户端项目(开发思路和代码)
    一个妹子图应用客户端源码
    扎根找房子应用源码项目
    【UI集合】- 自定义搜索框
    【OC基础】- 简介
    【2015、01】追赶AND改变
  • 原文地址:https://www.cnblogs.com/jzbs/p/11850838.html
Copyright © 2011-2022 走看看