Установка и уменьшение значения счётчика
важность: 5
Измените код makeCounter()
так, чтобы счётчик мог уменьшать и устанавливать значение:
counter()
должен возвращать следующее значение (как и раньше).counter.set(value)
должен устанавливать счётчику значениеvalue
.counter.decrease()
должен уменьшать значение счётчика на 1.
Посмотрите код из песочницы с полным примером использования.
P.S. Для того, чтобы сохранить текущее значение счётчика, можно воспользоваться как замыканием, так и свойством функции. Или сделать два варианта решения: и так, и так.
В решении использована локальная переменная count
, а методы сложения записаны прямо в counter
. Они разделяют одно и то же лексическое окружение и также имеют доступ к текущей переменной count
.
function makeCounter() {
let count = 0;
function counter() {
return count++;
}
counter.set = value => count = value;
counter.decrease = () => count--;
return counter;
}