先回顾一下防抖的概念:如果在某一时间间隔内,用户多次出发某一事件,只有最后一次是有效。
首先主功能函数debouce需要两个参数:事件处理函数,时间间隔
///这里的debounce是一个闭包
function debounce(fn,time){
let timer=null
let that=this
let args=arguments
return ()=>{
if(timer){
clearTimeOut(timer)
}
timer=setTimeOut(()=>{
//fn.apply(that,args)
fn() ///这里的func是事件处理函数
},time)
}
}
定义事件处理函数
function fn(){
console.log('触发了!')
}
调用防抖函数
let db=debounce(fn,4000)
db()