Función que recuerda el ámbito en el que fue creada, incluso si se ejecuta fuera de ese ámbito.
Común en JavaScript y otros lenguajes. Permite crear funciones con estado privado y es la base de muchos patrones de diseño.
// Closure básico function crearContador() { let count = 0; // Variable privada return { incrementar: () => ++count, decrementar: () => --count, valor: () => count }; } const contador = crearContador(); console.log(contador.incrementar()); // 1 console.log(contador.incrementar()); // 2 console.log(contador.valor()); // 2 // count no es accesible directamente // Closure para crear funciones especializadas function multiplicador(factor) { return (numero) => numero * factor; } const duplicar = multiplicador(2); const triplicar = multiplicador(3); console.log(duplicar(5)); // 10 console.log(triplicar(5)); // 15