«

JavaScript 防抖代码

时间:2023-3-10 11:42     作者:wen     分类: F2E


防抖 (debounce) 是一种常见的 JavaScript 技巧,用于限制函数在一定时间内被频繁调用的情况。下面是一个简单的防抖函数示例:

function debounce(func, delay) {
  let timeoutId;
  return function() {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      func.apply(this, arguments);
    }, delay);
  };
}

这个函数接受两个参数:

函数返回一个新函数,这个函数会在被调用 delay 毫秒之后才会执行 func。如果在这个时间间隔内再次调用该函数,那么之前的调用就会被取消,只有最后一次调用才会被执行。例如:

function doSomething() {
  console.log('Doing something...');
}

const debounced = debounce(doSomething, 1000);
debounced(); // 等待 1000 毫秒后打印 "Doing something..."
debounced(); // 取消之前的调用,等待 1000 毫秒后打印 "Doing something..."
debounced(); // 取消之前的调用,等待 1000 毫秒后打印 "Doing something..."

这个防抖函数非常简单,但可以很好地解决某些场景下频繁调用函数的问题,比如输入框输入事件、窗口 resize 事件等。

标签: javascript