Назад к вопросам
Транснефть
Middle
1
Если определить debounce как стрелочную функцию, что изменится? Как передавать аргументы через rest-оператор (три точки)?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Если определить debounce как стрелочную функцию, то контекст this внутри неё будет лексически связан с контекстом, в котором она объявлена. Это удобно, чтобы не терять контекст при передаче функции.
Пример debounce как стрелочной функции с rest-оператором для аргументов:
const debounce = (func, delay) => {
let timeoutId;
return (...args) => {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
func(...args);
}, delay);
};
};
// Использование:
const log = (...args) => console.log(...args);
const debouncedLog = debounce(log, 300);
debouncedLog('Привет', 'мир');
Здесь (...args) — это rest-оператор, который собирает все переданные аргументы в массив args. Затем func(...args) разворачивает этот массив обратно в список аргументов при вызове исходной функции.