Anfängerleitfaden zu JavaScript -Schließungen

Anfängerleitfaden zu JavaScript -Schließungen
SchließungenGehören zu den grundlegendsten Bausteinen von JavaScript. Als JavaScript -Anfänger haben Sie möglicherweise Schließungen wissentlich oder unwissentlich verwendet. Das Sammeln von Wissen über die Arbeit von Schließungen ist jedoch entscheidend, da Sie die Interaktion zwischen Variablen und Funktionen und dem Ausführungsprozess Ihres JavaScript -Programms verstehen können.

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';
Funktion displayMessage ()
lass info = 'Hallo! Ich heiße';
Konsole.log (info + " + name);

Nachricht anzeigen();

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 ()
lass info = 'Hallo! Mein Name ist Alex.';
Funktion show ()
Konsole.log (info);

zeigen();

Nachricht anzeigen();

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 ()
lass info = 'Hallo! Mein Name ist Alex.';
Funktion show ()
Konsole.log (info);

Rücklaufshow;

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:

Funktion show ()
lass info = 'Hallo! Mein Name ist Alex.';
Info zurückgeben;

zeigen();

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):

lass info = 'Hallo! Mein Name ist Alex.';
Funktion show ()
Info zurückgeben;

zeigen();

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:

var displayMessage = function ()
lass info = 'Hallo! Mein Name ist Alex.';
var show = function ()
Konsole.log (info);

zeigen();

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.