Встановити і зменшити лічильник
важливість: 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;
}