Closures
Un closure es una función junto con el acceso al entorno léxico donde fue creada. Conserva bindings, no copias mágicas de sus valores: si el binding cambia, las llamadas posteriores observan ese estado actualizado.
Este mecanismo permite encapsular estado y fabricar funciones configuradas. Amplía el alcance estudiado antes: la vida de un binding puede superar la ejecución que creó su entorno cuando una función todavía lo referencia.
function crearSecuencia(inicio) {
let actual = inicio;
return () => actual++;
}
const siguiente = crearSecuencia(10);
console.log(siguiente(), siguiente());Puntos importantes
- Cada llamada exterior crea bindings independientes.
- Error común: describir el closure como una fotografía inmutable del valor.
- La encapsulación depende del alcance léxico, no de una palabra reservada especial.