Hoisting and Execution Context

How do separate closures maintain independent state?
function createCounter() {
  let count = 0;
  return function() {
    count++;
    console.log(count);
  };
}

const counter1 = createCounter();
const counter2 = createCounter();

counter1();
counter1();
counter2();
Next Question (16/20)