JavaScript · Funciones

Closure

Función que conserva acceso a variables de su entorno de creación.

Una closure aparece cuando una función conserva acceso a variables del ámbito en el que fue creada, incluso después de terminar la llamada exterior.

Ejemplo

JavaScript · Funciones
function crearContador() {
  let valor = 0;
  return () => ++valor;
}
const siguiente = crearContador();
console.log(siguiente()); // 1
console.log(siguiente()); // 2

Evita esta confusión

Cada llamada a crearContador crea su propio estado. No confundas ese estado con una variable global.