// 閉包的使用場景:一個方法要被多次呼叫,并且共享一個資料 // 防抖和節流 // 自執行函式省去單獨呼叫一次 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") })
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/83657.html
標籤:JavaScript
上一篇:js實作函式防抖與節流
