防抖、节流
防抖
💡 一直触发这个函数,每次触发间隔小于dealy,防抖之后只调用一次
- 缓存一个定时器id
- 返回一个实际调用的函数
- 函数内部判断已经有定时器则清空上次定时器
function debounce(fn, dealy = 500) {
let timer = null
return function(){
if(timer) clearTimeout(timer)
timer = setTimeout(() => {
fn.apply(this, arguments)
}, dealy)
}
}
大约 1 分钟