防抖函数的作用是在持续触发事件时,只执行一次处理函数,以提高性能和避免重复操作。

以下是一个简单的防抖函数的代码实现:

function debounce(func, delay) {
  let timer = null;
  return function() {
    const context = this;
    const args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function() {
      func.apply(context, args);
    }, delay);
  };
}

这个函数接受两个参数:

  • func: 要执行的函数
  • delay: 防抖的时间间隔,单位毫秒

在函数内部,我们创建了一个 timer 变量,用于存储定时器的 ID。在每次函数调用时,我们清除之前的定时器,然后创建一个新的定时器,等待指定时间后执行函数。如果在指定时间内再次调用函数,就会清除之前的定时器并创建一个新的定时器,保证只有最后一次操作会执行函数。

使用方式如下:

function myFunction() {
  // 执行的函数体
}

// 创建一个防抖函数
const debouncedFunction = debounce(myFunction, 500);

// 在需要防抖的事件上调用防抖函数
element.addEventListener('input', debouncedFunction);
帮我用js写一个防抖函数

原文地址: https://www.cveoy.top/t/topic/Yti 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录