Closure (Clausura)
Closure (Clausura)
Un closure es una función que "recuerda" el ámbito en el que fue creada, incluso después de que ese ámbito haya desaparecido.
Características:
Accede a variables de su ámbito externo
Mantiene referencias a esas variables
Útil para crear funciones con "estado privado"
Ejemplo en JavaScript:
function crearContador() {
let contador = 0; // Variable "privada"
return function() {
contador++;
return contador;
};
}
const miContador = crearContador();
console.log(miContador()); // 1
console.log(miContador()); // 2
console.log(miContador()); // 3🏛️ Singleton
Un singleton es un patrón de diseño que asegura que una clase tenga solo una instancia y proporciona un punto de acceso global a ella.
Características:
Solo una instancia en toda la aplicación
Acceso global controlado
Útil para recursos compartidos (bases de datos, configuraciones, etc.)
Ejemplo en JavaScript:
class Database {
constructor() {
if (Database.instance) {
return Database.instance;
}
this.connection = "Conectado a la BD";
Database.instance = this;
return this;
}
conectar() {
return this.connection;
}
}
// Uso:
const db1 = new Database();
const db2 = new Database();
console.log(db1 === db2); // true - misma instancia🔍 Diferencia clave
| Closure | Singleton |
|---|---|
| Función con estado | Patrón de diseño |
| Scope y variables | Instancia única de clase |
| Programación funcional | Programación orientada a objetos |
¿Te gustaría que profundice en algún aspecto específico de estos conceptos?
Comentarios
Publicar un comentario