All Challengesintermediate

Closure and counter

Closures are a fundamental JavaScript concept. AI uses this pattern for factories and encapsulation.

closuresscopefactory functionencapsulation
javascript
function makeCounter(start = 0) {
  let count = start

  return {
    increment() { count += 1 },
    decrement() { count -= 1 },
    reset() { count = start },
    value() { return count }
  }
}

const counter = makeCounter(10)
counter.increment()
counter.increment()
counter.increment()
counter.decrement()
const result = counter.value()
counter.reset()
const afterReset = counter.value()

Question

What are result and afterReset?