Saltar al contenido principal
Volver al curso
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