Вам нужно написать функцию debounce, которая принимает в качестве аргумента другую функцию и время задержки (в миллисекундах). Функция debounce должна возвращать новую функцию, которая вызывает исходную функцию только после того, как прошло указанное время с момента последнего вызова. Если в течение этого времени функция вызывается снова, то таймер должен быть сброшен, и ожидание начнется заново.
Пример использования:
function sayHello() {
console.log('Hello!');
}
const debounceSayHello = debounce(sayHello, 1000);
debounceSayHello(); // Вызовется сразу
debounceSayHello(); // Не вызовется
// Через 1000 мс
// Вывод: Hello!Дополнительные требования:
Функция debounce должна быть универсальной и работать с любым количеством и типом аргументов.
Результат вызова функции debounce должен быть функцией.
Если функция debounce вызывается с аргументами, они должны быть переданы исходной функции при вызове.
Такая задача проверяет понимание асинхронности и обработки событий в JavaScript, а также умение создавать и использовать замыкания.
#домашка
