Description

A function that remembers variables from its outer scope even after the outer function has returned.
?

Reach for when

You want to store state in a function

Code

function createCounter() {
  let count = 0;
  return () => ++count;
}
const counter = createCounter();
counter(); // 1
counter(); // 2