前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js监听模式模拟事件监听

js监听模式模拟事件监听

原创
作者头像
IT工作者
发布2022-03-19 16:28:09
19.4K0
发布2022-03-19 16:28:09
举报
文章被收录于专栏:程序技术知识
代码语言:javascript
复制
    function Handle(){
        this.events={};
        this.addEventListener=function(type,fn){
            //添加订阅
            if(!this.events[type]){
                this.events[type]=[];
            }
            this.events[type].push(fn);
        };
        this.click=function(){
            //模拟click方法
            this.publish("click");
        };
        this.publish=function(type){
            for(var index in this.events[type])
            {
                this.events[type][index].call(this);
            }
        };
        this.removeEventListener=function(type,fn){
            if(arguments.length==1){
                throw new Error("该方法必须存在两个参数!");
                return;
            }
            //删除订阅
            var fnlist=this.events[type];
            var funindex=fnlist.findIndex(function(item){
                return item.name===fn;
            });
            fnlist.splice(funindex,1);
        }
    }
    var myEvent=new Handle();
    myEvent.addEventListener("click",function(){
        console.log("函数1");
    });
    myEvent.addEventListener("click",method);
    function method(){
        console.log("函数2");
    }
    myEvent.removeEventListener("click",method);
    myEvent.click(); 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档