参考 博客
总之,节流是将频繁执行的函数限制在每隔一段时间执行一次,防抖是将频繁执行的函数只在函数停止执行时执行一次
封装的防抖函数
function _debounce(fn,delay){
let timer=null
return function(){
if(timer) clearTimeout(timer)
timer=setTimeout(fn,delay)
}
}
封装节流函数
function _throttle(fn,delay){
let valid=true
return function(){
let args = arguments;
if(!valid){
return false
}
valid=false
setTimeout(()=>{
valid=true
fn.apply(this,args)
},delay)
}
}