назад до уроку

Встановити і зменшити лічильник

важливість: 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;
}

Відкрити рішення із тестами в пісочниці.