问题库 JavaScript / TypeScript how-to

JavaScript 如何实现 debounce 防抖

快速答案

清掉上一次定时器,只在停止触发一段时间后执行。

js
function debounce(fn, wait = 300) {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), wait);
  };
}

使用要点

  • 先用最小数据跑通示例,再把字段名、选择器或函数名换成项目里的真实值。
  • 接入后补一个失败分支,避免只覆盖演示中的成功路径。

相关内容