Volver a la página principal
miércoles 3 julio 2024
3

¿Qué es un closure en Javascript?

En JavaScript, un "closure" es una característica que permite a una función acceder al ámbito de una función exterior, incluso después de que esa función exterior haya terminado de ejecutarse. Esencialmente, un closure combina una función y el entorno en el que fue creada.

Para entender mejor, considera el siguiente ejemplo:

function crearContador() {
    let contador = 0;
    return function() {
        contador++;
        console.log(contador);
    };
}
const miContador = crearContador();
miContador(); // Imprime 1
miContador(); // Imprime 2
miContador(); // Imprime 3

En este ejemplo, crearContador es una función que define una variable contador y luego retorna una nueva función anónima. La función anónima incrementa e imprime el valor de contador.

La clave aquí es que miContador es una referencia a la función interna anónima, y esta función tiene acceso al entorno en el que fue creada, específicamente a la variable contador de crearContador. Este acceso persiste incluso después de que crearContador haya terminado de ejecutarse, permitiendo que la variable contador sea incrementada cada vez que se llama a miContador.

Este comportamiento es posible gracias a los closures. En resumen, un closure permite que una función "recuerde" y acceda a su ámbito léxico, es decir, al entorno donde fue declarada originalmente, incluso cuando se invoca fuera de ese entorno.

Compartir:
Autor:
User photo

Jorge García

Fullstack developer