js通过闭包实现多个相同事件只需绑定一次
2023-09-14 09:07:44 时间
// 闭包的使用场景:一个方法要被多次调用,并且共享一个数据 // 防抖和节流 // 自执行函数省去单独调用一次 let addEvent = (function() { let obj = {}; return function(eventName,fns){ if(obj[eventName] && obj[eventName].length>0){ obj[eventName].push(fns); }else { obj[eventName] = []; obj[eventName].push(fns); // 相当于每次添加一个新事件,则给这个事件绑定对应的事件,因为引用的obj是引用类型,之后每次obj修改,则会同步更新进来 document.addEventListener(eventName,function () { for(let fn of obj[eventName]){ fn(); } }) } } })() addEvent('mouseover',function () { console.log("鼠标进入") }) addEvent('click',function () { console.log("click1") }) addEvent('click',function () { console.log("click2") }) addEvent('click',function () { console.log("click3") }) addEvent('click',function () { console.log("click4") })
相关文章
- 关于js中的冒泡事件
- JS自己实现字符串加密和解密算法
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
- JS批量绑定事件
- js的老生代垃圾回收
- js原生触发事件
- [Hapi.js] Replying to Requests
- js原生触发事件
- Atitit。监听键盘上下左右方向键事件java js jquery c#.net
- Atitit.dart语言的特性 编译时js语言大总结
- 华为OD机试 - 单向链表中间节点(Java & JS & Python)
- js jquery手指滑动,上滑,下滑,左滑,右滑,事件监听
- js添加点击事件
- js中如何在不影响既有事件监听的前提下新增监听器
- 如何查看jsplumb.js的API文档(YUIdoc的基本使用)#华为云·寻找黑马程序员#
- js php 数组比較
- js 递归修改json无限级key值
- node-schedule.js实现crontab定时任务
- JS ready和onload事件 比较分析
- JS事件相关知识点整理
- js倒计时效果demo示例
- JS工具函数大全
- 【js中鼠标点击、移动和光标移动的事件触发】
- JS中的if和switch该如何选择?
- 像素鸟html与js源码(4节课勉强做完)
- 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 执行JS操作