Diese Beschreibung ist vollständig Ratgeber für Anfänger Zu JavaScript -Schließungen in dem wir den variablen Zugriff in verschiedenen Bereichen diskutieren werden.
Bevor wir uns mit dem Konzept der JavaScript -Schließungen eintauchen, werden wir zunächst erklären, was Lexikaler Scoping ist, da beide Begriffe miteinander verbunden sind.
Lexikalischer Scoping in JavaScript
Der variable Umfang wird durch seine Deklaration im Quellcode bestimmt, bekannt als “Lexikaler Scoping”. Zum Beispiel im untergegebenen Beispiel das Erstellen “Name"Variable ist eine"global"Variable, die bedeutet, dass sie von überall im Programm aus zugegriffen werden können, z. B. innerhalb des"Nachricht anzeigen()”Funktion.
Jedoch, "die Info" ist ein "lokal"Variable, auf die nur innerhalb des" zugegriffen werden kann "Nachricht anzeigen()Funktion:
lass name = 'Alex';Die Ausführung des oben gegebenen Codes zeigt die folgende Ausgabe an:
Verschachtelter lexikaler Scoping in JavaScript
Die Bereiche der Variablen können mit dem “verschachtelt werdenLexikaler ScopingSo, dass die innere Funktion Zugriff auf die im äußeren Bereich deklarierten Variablen haben kann.
Betrachten Sie das folgende Beispiel:
Funktion displayMessage ()In diesem Beispiel das “Nachricht anzeigen()"Funktion hat eine lokale Variable benannt"die Info"Und ein verschachteltes"zeigen()”Funktion, wo“zeigen()" ist ein innere Funktion, die die Fähigkeit hat, auf den Wert der zuzugreifen “die Info”Variable aus der Außenbereich.
Also, wenn das “Nachricht anzeigen()Die Funktion wird ausgeführt, sie wird das aufrufen "zeigen()Funktion, die dann auf die “zugreift“die InfoVariable und zeigen Sie ihren Wert auf der Konsole an:
Jetzt werden wir das ändern “Nachricht anzeigen()"Methode und anstatt das Innere zu rufen"zeigen()"Funktion, wir werden eine Anweisung hinzufügen, um die" zurückzugeben "zeigen()Funktionsobjekt:
Funktion displayMessage ()Außerdem haben wir den von der zurückgegebenen Wert zugewiesenNachricht anzeigen()”Funktion zu“X”Variable:
sei x = displayMessage ();Zuletzt werden wir anrufen “X()"Funktion, die sich auf die" bezieht "zeigen()Funktion:
Konsole.log (x ());Sie können aus der angegebenen Ausgabe, dem Wert der lokalen Variablen, sehen “die InfoEs gibt immer noch, was im Allgemeinen bis zur Ausführung der Funktion, in der sie deklariert wird, im Gedächtnis verbleibt:
Scheint verwirrt? Das ist die Magie von Schließung was Sie im letzten Beispiel als "gesehen haben" als "zeigen()Ist eine Schließfunktion, die den äußeren Umfang in seinem eigenen Bereich aufrechterhält.
Was sind JavaScript -Schließungen?
JavaScript -Funktionen dienen ebenfalls als “Schließungen„Weil der Körper einer Funktion Zugriff auf die Variablen hat, die außerhalb davon definiert sind. Oder wir können definieren “Schließung"Als eine Funktion, die eine untergeordnete Funktion ist und auf die in der" erstellten Variablen zugreifen kannElternteilFunktionsumfang.
Schauen wir uns nun einige Beispiele an, um die Assoziation zwischen den variablen Scopes und dem Verschluss in JavaScript zu verstehen.
Beispiel 1
Dieses Beispiel zeigt, wie a “lokal"Variable"die Info”Kann in der“ zugegriffen werden “zeigen()Funktion, wo es erstellt wird. Denken Sie daran, dass das verbleibende Skript nicht darauf zugreifen kann. “die Info”Variable:
Wenn das "zeigen()Die Funktion wird ausgeführt, sie zeigt den in der “gespeicherten Wert andie Info”Variable:
Beispiel 2
Jetzt werden wir erklären "die Info" Als ein "global"Variable, die in" verwiesen wird "zeigen()”Funktion (mit unterschiedlichem Umfang):
Als JavaScript -Funktion “zeigen()"Funktion ist eine"Schließung"Es wird den Umfang und den Zustand der" beibehalten "die Info”Variable:
Beispiel 3
In einer anderen Situation, wenn Variablen im Umfang des “definiert werden“Elternteil”Funktion, die“KindDie Funktion kann weiterhin auf ihren Wert zugreifen:
Die Ausgabe des angegebenen Programms bedeutet das “zeigen()"Das ist eine untergeordnete Funktion, kann auf die" zugreifen "die Info"Variable in der" deklariert "Nachricht anzeigen()Elternfunktion:
Das waren alles wesentliche Informationen zu JavaScript -Schließungen. Sie können Ihre Anforderungen weiter recherchieren.
Abschluss
JavaScript -Funktionen auch dienen als Schließungen Weil der Körper einer Funktion Zugriff auf die Variablen hat, die außerhalb davon definiert sind. Wir können definieren Schließung Als untergeordnete Funktion, die auf die im übergeordneten Funktionsbereich erstellten Variablen zugreifen kann. Diese Beschreibung ist vollständig Ratgeber für Anfänger Zu JavaScript -Schließungen in dem wir den variablen Zugriff in verschiedenen Bereichen erörtert haben.