Módulo 2 · Intermedio15 min
Closures y Alcance
Closures, patrones comunes, alcance léxico.
Recompensa al completar
Insignia “Maestro closures” · +20 puntos
¿Qué es un closure?
Un closure es una función que recuerda su alcance léxico incluso después de que la función externa haya terminado de ejecutarse.
javascript
function crearSaludo(saludo) {
return function(nombre) {
return `${saludo}, ${nombre}!`;
};
}const hola = crearSaludo("Hola");
console.log(hola("Ana")); // "¡Hola, Ana!"
Patrones comunes de closures
Generador de IDs
javascript
function crearGeneradorID() {
let id = 0;
return function() {
id++;
return id;
};
}Encapsulamiento
javascript
function crearCuenta(saldoInicial) {
let saldo = saldoInicial;
return {
depositar(monto) { saldo += monto; },
obtenerSaldo() { return saldo; }
};
}?Ejercicio
Crea una función 'crearContador' que retorne un objeto con incrementar() y obtener().
editor.js
12345
Recompensa al completar
Insignia “Maestro closures” · +20 puntos