JavaScript 从浅入深 100 题训练计划--(5)防抖函数(Debounce)
- 事件触发后等待一段延迟时间
- 等待期间再次触发则重新计时
- 最终只执行最后一次触发
function debounce(fn, delay = 300) {
let timer = null;
return function (...args) {
const context = this;
// 清除上一次的计时器
if (timer) clearTimeout(timer);
// 重新设置计时器
timer = setTimeout(() => {
fn.apply(context, args);
timer = null;
}, delay);
};
}

浙公网安备 33010602011771号