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:

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:

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

ClosureSingleton
Función con estadoPatrón de diseño
Scope y variablesInstancia única de clase
Programación funcionalProgramación orientada a objetos

¿Te gustaría que profundice en algún aspecto específico de estos conceptos?

Comentarios

Entradas populares de este blog

¿Qué es un Closure?

4 tipos de colecciones de datos más

Calculadora de edad