Closures y Ámbito Léxico en JavaScript
Closures y Ámbito Léxico en JavaScript
¿Que son los closures?
En JavaScript, un closure (clausura) es cuando una función recuerda las variables del lugar donde fue creada, incluso si se ejecuta después y fuera de ese lugar.
¿Que es un ámbito lexico?
El ámbito léxico significa que:
El alcance de las variables se define por el lugar donde escribes el código, no por dónde se ejecuta.
fuction saludar(){
let nombre ="Gabriela";
fuction mensaje (){
console.log("Hola" + nombre)
}
return mensaje;
}
const miFuncion = saludar();
miFuncion(); Que es lo que sucede
-
saludar() se ejecuta.
-
Dentro existe la variable nombre.
-
Retornamos la función mensaje.
-
Aunque saludar() ya terminó…
-
mensaje() sigue teniendo acceso a nombre.
-
Eso es un closure.
Eso se usa mucho para:
-
Variables privadas
-
Factory functions
-
Hooks en React
-
Manejo de estado