What a closure is
A closure is a function that keeps access to the lexical scope where it was created, even when called elsewhere.
function counter() {
let n = 0;
return function () {
return ++n;
};
}
const inc = counter();
inc(); // 1
inc(); // 2
The inner function remembers n even after counter() is done.
Where you meet them
- Module pattern (private state).
- Callbacks with captured data.
- React hooks (
useStateuses closure).