我的回答
防抖
消除多次频繁触发的影响, 连续触发, 在某个时间段内只会给出一个返回结果
function debounce(fn, delay) {
let timer = null
return () => {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(fn, delay)
}
}
节流
频繁触发, 一段时间内不允许再次触发, 只能等待时间过去后, 才能再次触发
function throttle(fn, delay) {
let valid = true
return () => {
if (!valid) {
return false
}
valid = false
setTimeout(() => {
fn()
valid = true
}, delay)
}
}