Cierres en JavaScript
Ahora estudiemos el concepto de cierre (closure). En realidad tú ya estás familiarizado con este concepto, solo queda aprender la terminología correcta.
Entonces, un cierre es una función junto con todas las variables externas a las que tiene acceso. O, en otras palabras, un cierre es una función junto con su entorno léxico.
En JavaScript, la mayoría de las veces, cuando se dice "cierre de una función", no se refieren a la función en sí, sino precisamente a sus variables externas. Si alguna función obtiene una variable de su entorno léxico, entonces se dice "la variable se toma del cierre".
Recordemos el código que hicimos en la lección anterior:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // mostrará 1
En este caso se puede decir que la función
func obtiene el valor de la variable
num del cierre. También se puede decir,
que la función func almacena el valor de la variable
num en el cierre.