Aprende a dominar los closures en JavaScript con un ejemplo claro y práctico: una cuenta bancaria con estado privado. Aquí verás cómo una función recuerda su scope incluso después de ejecutarse, permitiendo encapsular datos, exponer métodos seguros y mantener consistencia del estado.
¿Qué es un closure y por qué importa en JavaScript?
Un closure es “una función que recuerda el scope en el cual fue creada, incluso después de que esta ha sido ejecutada”. En este caso, la variable saldo se define como privada y solo es accesible por los métodos retornados. Así se evita exponer directamente el estado y se controlan las operaciones disponibles.
¿Cómo recuerda el scope y mantiene estado privado?
Se define let saldo = saldoInicial dentro de la función creadora.
Los métodos retornados acceden a saldo gracias al closure.
El estado persiste entre invocaciones: cada depósito o retiro actualiza saldo sin exponerlo públicamente.
¿Qué operaciones se habilitan con estado privado?
depositar(cantidad): suma al saldo y devuelve un mensaje con el nuevo total.
retirar(cantidad): valida fondos, evita “dinero infinito” y actualiza el saldo.
consultarSaldo(): retorna el saldo actual en formato legible.
¿Cómo crear una cuenta bancaria con closure en JavaScript?
A continuación, la función que crea la cuenta, encapsula saldo y retorna métodos para operar con la cuenta. Observa cómo cada método accede a saldo gracias al closure.