Este artículo es completo Guía para principiantes a Cierres de JavaScript en el que discutiremos el acceso variable dentro de diferentes ámbitos.
Antes de sumergirnos en el concepto de cierres de JavaScript, primero explicaremos qué Alcance léxico es como ambos términos están asociados entre sí.
Alcance léxico en JavaScript
El alcance variable está determinado por su declaración en el código fuente, conocido como "Alcance léxico". Por ejemplo, en el ejemplo dado a continuación, el creado "nombre"La variable es una"global"Variable que significa que se puede acceder desde cualquier lugar del programa, como dentro del"DisplayMessage ()" función.
Sin embargo, "información" es un "local"Variable a la que solo se puede acceder dentro del"DisplayMessage ()" función:
Let Name = 'Alex';La ejecución del código anterior mostrará el siguiente resultado:
Alcance léxico anidado en JavaScript
Los ámbitos de las variables se pueden anidar utilizando el "Alcance léxico"De tal manera que la función interna puede tener acceso a las variables declaradas en el alcance externo.
Considere el siguiente ejemplo:
función displayMessage ()En este ejemplo, el "DisplayMessage ()"La función tiene una variable local llamada"información"Y un anidado"espectáculo()"Función, donde"espectáculo()"Es un interno función que tiene la capacidad de acceder al valor del "información"Variable del alcance externo.
Entonces, cuando el "DisplayMessage ()"La función se ejecuta, llamará al"espectáculo()"Función, que luego accederá al"información"Variable y mostrar su valor en la consola:
Ahora, modificaremos el "DisplayMessage ()"Método y en lugar de invocar lo interior"espectáculo()"Función, agregaremos una declaración para devolver el"espectáculo()"Function Object:
función displayMessage ()Además, hemos asignado el valor devuelto por el "DisplayMessage ()"Función a"X" variable:
Sea x = DisplayMessage ();Por último, invocaremos "X()"Función que se refiere al"espectáculo()" función:
consola.log (x ());Puede ver desde la salida dada, el valor de la variable local "información"Todavía existe, lo que generalmente permanece en la memoria hasta la ejecución de la función donde se declara:
Parece confundido? Esta es la magia de Cierre que has visto en el último ejemplo como "espectáculo()"Es una función de cierre que mantiene el alcance externo en su propio alcance.
¿Qué son los cierres de JavaScript?
Las funciones de JavaScript también sirven como "Cierre"Porque el cuerpo de una función tiene acceso a las variables que se definen fuera de ella. O podemos definir "Cierre"Como una función que sea una función infantil y puede acceder a las variables creadas dentro del"padre"Al alcance de la función.
Ahora, veremos algunos ejemplos para comprender la asociación entre los alcances variables y el cierre en JavaScript.
Ejemplo 1
Este ejemplo demuestra cómo un "local" variable "información"Se puede acceder dentro del"espectáculo()"Función donde se crea. Recuerde, el script restante no puede acceder a esto "información" variable:
Cuando el "espectáculo()"La función se ejecuta, mostrará el valor almacenado en el"información" variable:
Ejemplo 2
Ahora, declararemos "información" como un "global"Variable que se refiere en el"espectáculo()Función "(con un alcance diferente):
Como la función de JavaScript "espectáculo()"La función es una"Cierre", Mantendrá el alcance y el estado de la"información" variable:
Ejemplo 3
En otra situación, cuando las variables se definen en el alcance del "padre"Función, la"niño"La función aún puede acceder a su valor:
La salida del programa dado significa que "espectáculo()"Que es una función infantil, puede acceder al"información"Variable declarada en el"DisplayMessage ()"Función principal:
Esa fue toda la información esencial relacionada con los cierres de JavaScript. Puede investigar más de acuerdo con sus requisitos.
Conclusión
Funciones de JavaScript también sirve como Cierre Porque el cuerpo de una función tiene acceso a las variables que se definen fuera de ella. Podemos definir Cierre Como una función infantil que puede acceder a las variables creadas dentro del alcance de la función principal. Este artículo es completo Guía para principiantes a Cierres de JavaScript en el que hemos discutido el acceso variable dentro de diferentes ámbitos.