javascript function callLimit(fn, limit) { let count = 0;
Реализовать декоратор callLimit(fn, limit, callback), который ограничивает число вызовов функции. Принимает: функцию для декорирования, максимальное количество вызовов, колбэк, вызываемый при последнем вызове (опционально). У возвращаемой функции должен быть метод reset для перезагрузки счётчика в начальное положение.
javascript function callLimit(fn, limit) { let count = 0;
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
javascript function callLimit(fn, limit) { let count = 0;
function limited(...args) { if (count < limit) { count++; return fn(...args); } // Можно вернуть undefined или выбросить ошибку, если превышен лимит }
limited.reset = () => { count = 0; };
return limited; }
// Пример: const sayHello = () => console.log('Hello'); const limitedHello = callLimit(sayHello, 3);
limitedHello(); // Hello limitedHello(); // Hello limitedHello(); // Hello limitedHello(); // не вызовется
limitedHello.reset(); limitedHello(); // Hello