Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: debounce, arguments, closure, event handling

Как передавать аргументы в debounce-функцию?

Вопрос проверяет понимание передачи аргументов в debounce-функцию для корректной обработки событий с задержкой.

Короткий ответ

Debounce-функция принимает целевую функцию и задержку. При вызове она возвращает новую функцию, которая собирает аргументы через rest-оператор и передает их в исходную функцию через apply или call после таймаута. Это позволяет сохранить контекст и параметры вызова, например, при обработке ввода в поисковой строке.

Длинный ответ

Передача аргументов в debounce-функцию

Debounce — это техника, которая ограничивает частоту вызова функции, откладывая её выполнение до тех пор, пока не пройдет определённый промежуток времени после последнего вызова. Для корректной работы необходимо передавать аргументы, с которыми была вызвана обёртка, в исходную функцию.

Как это работает

Внутри debounce создаётся замыкание, которое хранит таймер. Возвращаемая функция использует rest-оператор для сбора всех переданных аргументов в массив. Затем, при срабатывании таймера, эти аргументы передаются в исходную функцию через apply или call, что позволяет сохранить контекст this.

Пример кода

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

// Использование
const searchInput = document.getElementById('search');
const handleSearch = debounce((query) => {
  console.log('Поиск:', query);
}, 300);

searchInput.addEventListener('input', (e) => {
  handleSearch(e.target.value);
});

Где применяется

  • Обработка ввода в поисковых строках
  • Ресайз окон
  • Скролл-события

Вывод: передача аргументов через rest-оператор и apply — стандартный способ реализации debounce, который обеспечивает гибкость и правильную работу с любыми параметрами.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#debounce

#arguments

#closure

#event handling

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию