防抖函数(debounce function)是指在一定时间内,在函数被调用后过了这个时间才会执行,如果在这个时间内函数再次被调用,则会重新开始倒计时。这样可以避免在某些特定情况下函数被频繁调用,从而达到节流的效果。
例如,当用户输入框输入内容时,我们希望限制请求的频率,可以使用防抖函数,每隔一段时间才去触发请求。
下面是一个使用 JavaScript 实现防抖函数的示例:
function debounce(fn, delay) {
let timer = null;
return function () {
const context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}