Вопрос проверяет понимание того, как добавить метод сброса счётчика к функции-декоратору в JavaScript, что важно для управления состоянием и тестирования.
Декоратор — это функция, которая оборачивает другую функцию, добавляя к ней новое поведение. Часто декораторы используются для подсчёта вызовов. Чтобы добавить возможность сброса счётчика, можно присвоить возвращаемой функции свойство, которое будет содержать метод сброса.
Рассмотрим декоратор countCalls, который подсчитывает количество вызовов функции. Мы добавим метод reset, который обнуляет счётчик.
function countCalls(fn) {
let count = 0;
function wrapped(...args) {
count++;
console.log(`Вызов #${count}`);
return fn.apply(this, args);
}
wrapped.reset = function() {
count = 0;
console.log('Счётчик сброшен');
};
return wrapped;
}
const sayHi = countCalls(() => console.log('Привет!'));
sayHi(); // Вызов #1, Привет!
sayHi(); // Вызов #2, Привет!
sayHi.reset(); // Счётчик сброшен
sayHi(); // Вызов #1, Привет!count внутри декоратора.wrapped имеет доступ к count и увеличивает его при каждом вызове.wrapped.reset — это функция, которая обнуляет count.Такой подход полезен для отладки, профилирования или тестирования, когда нужно сбрасывать состояние между тестами. Он также демонстрирует, как функции в JavaScript могут иметь собственные методы.
Вывод: Добавление метода сброса к декоратору счётчика — это простой и эффективный способ управления состоянием, который особенно полезен в тестировании и мониторинге производительности.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию