Sobes.tech
Назад к вопросам
Middle+
3

Практическое задание: реализовать функцию debounce

Компании, где спрашивали
Evocargo

Ответ от нейросети

sobes.tech AI

Функция debounce ограничивает частоту вызова переданной функции, вызывая её только после того, как прошло определённое время с последнего вызова. Это полезно, например, при обработке событий ввода или прокрутки.

Пример реализации debounce на JavaScript:

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

// Использование:
const onResize = debounce(() => {
  console.log('Resize event handled');
}, 300);

window.addEventListener('resize', onResize);

В этом примере функция onResize будет вызвана не чаще, чем раз в 300 мс после последнего события resize.