其他分享
首页 > 其他分享> > 自定义事件

自定义事件

作者:互联网

//新学的一个自定义事件方法  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);

标签:handle,自定义,eventName,事件,event,fn,myevent
来源: https://www.cnblogs.com/jzbs/p/11850838.html