JavaScript verschachtelte Funktionen

JavaScript verschachtelte Funktionen

JavaScript verschachtelte Funktionen sind die Arten von Funktionen, die in einer anderen Funktion definiert sind. Eine oder mehrere Funktionen können in einer Funktion hinzugefügt werden, und der Umfang der äußeren Funktionen umfasst diese verschachtelten oder inneren Funktionen. Die äußeren Funktionen werden auch als übergeordnete Funktionen bezeichnet, und die inneren Funktionen können als untergeordnete Funktionen in JavaScript -verschachtelten Funktionen bezeichnet werden. Die Variablen und Parameter der übergeordneten Funktion sind für die untergeordnete Funktion zugänglich, während die übergeordnete Funktion nicht auf die in den untergeordneten Funktionen deklarierten Variablen zugreifen kann.

In dieser Beschreibung wurden von JavaScript verschachtelte Funktionen besprochen. Darüber hinaus haben wir auch den variablen Umfang, die Parameter und die Rückgabeberechnungen der verschachtelten Funktionen mit Hilfe der Beispiele erläutert.

JavaScript verschachtelte Funktionen

In JavaScript ist eine verschachtelte Funktion eine Funktion, die in oder in einer anderen Funktion definiert ist. Das Verfahren zum Erstellen einer verschachtelten Funktion ist die gleiche, wie wir für die normale Funktion folgen, aber um eine verschachtelte Funktion zu erstellen, müssen wir die neue oder die untergeordnete Funktion innerhalb der übergeordneten Funktion definieren.

Hier ist das Syntax von verschachtelten JavaScript -Funktionen:

Funktion Elternfunktion () // Funktionsdefinition

Funktion ChildFunction () // Funktionsdefinition

// Körper der Kinderfunktion

Kinderfunktion (); // Kinderfunktion Aufruf

ParentFunction (); // übergeordnete Funktionsfunktion Aufrufe

Wie Sie aus der Syntax sehen können, müssen wir die Kinderfunktion () innerhalb der Elternfunktion definieren (). Wenn wir die Kinderfunktion () aufrufen wollen, müssen wir sie im Körper der Elternfunktion nennen ().

Beispiel: Verwenden von JavaScript -verschachtelten Funktionen

In diesem Beispiel wird angezeigt, wie Sie JavaScript -verschachtelte Funktionen erstellen. Zu diesem Zweck werden wir eine übergeordnete Funktion namens definieren “addnum ()", Der zwei Parameter hat"X" Und "y”. Danach werden wir eine Kinderfunktion erstellen. “zeige Nachricht()Das eine SMS in das Konsolenfenster ausdruiert:

Funktion addnum (x, y)

// verschachtelte Funktion
Funktion ShowMessage (Text)

Konsole.Protokoll (Text);

Sei sum = x+y;
// Aufrufen der verschachtelten Funktion
showMessage ("sum ist"+ sum)

Beachten Sie, dass wir das genannt haben "zeige Nachricht()Funktion innerhalb der Funktionsdefinition des “addnum ()”Funktion. Im nächsten Schritt werden wir die übergeordnete Funktion addnum () beim Bestehen aufrufen5" Und "6”Als Argumente:

Addnum (5,6)

Wie Sie aus der Ausgabe erkennen können, haben wir die verschachtelten Funktionen unseres Beispiels erfolgreich ausgeführt:

Variabler Umfang der verschachtelten JavaScript -Funktionen

Lassen Sie uns nun über den Umfang der verschachtelten Funktionen in JavaScript sprechen. Die verschachtelten Funktionen haben ihren eigenen Umfang; Sie können jedoch auch auf den Umfang der übergeordneten oder der äußeren Funktion zugreifen. Beachten Sie zwei Punkte über den variablen Umfang der verschachtelten JavaScript -Funktionen: Eine verschachtelte Funktion ist privat für ihre übergeordnete Funktion, und eine verschachtelte Funktion hat Zugriff auf den Bereich der Elternfunktion.

Wir werden jede der angegebenen Aussagen mit Hilfe von Beispielen erklären.

Wie wir bereits erwähnt haben, wird die verschachtelte Funktion berücksichtigt “Privatgelände”Für die Funktion, die ihre Definition enthält. Dies bedeutet, dass nur der übergeordnete oder die enthaltende Funktion auf die verschachtelte Funktion zugreifen kann, und Sie dürfen nicht außerhalb der angegebenen Funktion darauf zugreifen. Dies geschieht, weil wir die innere Funktion innerhalb des äußeren Funktionsbereichs definiert haben.

Zum Beispiel haben wir eine äußere Funktion definiert “Nummer hinzufügen()"Im untergegebenen Code und dann die innere Funktion hinzugefügt"zeige Nachricht()”Innerhalb der Definition der äußeren Funktion:

Funktion addnumber (x, y)

Funktion ShowMessage (Text)

Konsole.Protokoll (Text);

Sei sum = x+y;
showMessage ("sum ist" + sum)

Wenn wir nun versuchen, auf die innere Funktion zuzugreifen “zeige Nachricht()"Außerhalb seines Geltungsbereichs wird es die" werfen "Unkaushöser ReferenzError" Fehler:

ShowMessage ('20 ');

Alle in der äußeren Funktion definierten Funktionen, Variablen und Argumente sind für die erstellte verschachtelte Funktion zugänglich. Diese Fähigkeit wird als „lexikalischer Bereich“ bezeichnet, bei dem die innere Funktion auf den Umfang der übergeordneten oder äußeren Funktion zugreifen kann.

Wir werden keine Argumente an unsere innere Funktion von ShowMessage () im folgenden Beispiel weitergeben. Wir werden die Argumente nutzen “X" Und "y" unserer "Nummer hinzufügen()Äußere Funktion und die “Summe”Variable:

Funktion addnumber (x, y)

Funktion showMessage ()

Konsole.log ('Summe von %d + %d ist %d', x, y, sum);

Sei sum = x+y;
zeige Nachricht()

Jetzt werden wir die äußere Funktion aufrufen “Nummer hinzufügen()”Und passieren die“4" Und "6”Als Argumente:

Addnumber (4,6)

Schauen Sie sich die untergegebene Ausgabe an, die bedeutet, dass wir erfolgreich auf die “zugegriffen habenSumme"Variable", "X", Und "yArgument der äußeren Funktion addnumber in der Funktion showMessage ():

Rückgabe einer javaScript verschachtelten Funktion

Die äußere Funktion hat die Fähigkeit, die verschachtelte Funktion zurückzugeben. Zum Beispiel hat die Funktion der displayCounter () im untergegebenen Beispiel eine “eine“zählen”Variable und gibt die innere Funktion Increment () zurück:

Funktion displayCounter ()
lass count = 0;
increment = function ()
return ++ count;
;
Rückgabeinkrement;

Wir speichern die Funktion displayCounter () in der “Schalter”Im nächsten Schritt. Nun, das Konzept, das wir hier diskutieren müssen, ist, dass das “Zuwachs()Die Funktion hat weiterhin Zugriff auf die “zählen”Eigentum der“DisplayCounter ()Funktionieren Sie, wenn die Anzeigecounter () die Ausführung beendet hat. “Schließung”, Eine JavaScript -Funktion, macht dies möglich.

Hier das "zählen"Eigentum ist lokal zum"DisplayCounter ()"Funktion jedoch die definierte"Zuwachs"Funktion kann auch darauf zugreifen, da sie in der" verschachtelt ist "DisplayCounter ()Funktion:

counter = displayCounter ()

Der oben gegebene Code ruft das auf “ausDisplayCounter ()”Funktion. Anschließend initialisiert die Funktion displayCounter () zuerst die “zählen"Variable zum"0"Wert und gibt dann die" zurück "Zuwachs()”Funktion. Weil das "zählenEigentum wird nicht zerstört, wenn wir die Inkrementfunktion über die “aufrufen“Schalter()Jedes Mal die “zählenDie Eigenschaft wird gemäß dem hinzugefügten Code erhöht:

Konsole.log (counter ());
Konsole.log (counter ());
Konsole.log (counter ());

Schauen Sie sich die folgende Ausgabe des angegebenen Beispiels an:

Parameter der verschachtelten JavaScript -Funktionen

Die innere Funktion kann auch Argumente erfordern. Zum Beispiel im folgenden Beispiel das “Innerfunktion ()"Wird durch die" zurückgegeben "äußere Funktionen ()Und jeder von ihnen akzeptiert ein Argumentset:

Funktion oberfunktion (x)
Innerfunktion = Funktion (y)
Konsole.log ("x %d y %d", x, y)
;
Innere Funktion zurückgeben;

Um das zu bekommen Innerfunktion (), Wir werden den folgenden Code in unser JavaScript -Programm hinzufügen, während wir bestanden haben “3”Als Argument für die äußere Funktionen ():

Innerfunktion = äußere Funktion (3);

Dann werden wir die Innerfunktion () mit Wert aufrufen “7”Als Argument:

Innerfunktion (7);

Sie können auch die Argumente für äußere und innere Funktionen gleichzeitig verabschieden:

Außenfunktion (2) (3);

Beide angegebenen Zeilen des Codes haben die Innerfunktion () aufgerufen und die übergebenen Argumente ausgeben:

Abschluss

JavaScript ermöglicht es Ihnen, verschachtelte Funktionen im Programm zu verwenden, ohne Fehler zu treffen. Eine untergeordnete oder innere Funktion kann in eine äußere Funktion in JavaScript hinzugefügt werden. Alle lokalen, globalen Variablen der äußeren Funktion sind für die innere Funktion zugänglich. Im Falle der äußeren Funktion sind nur globale Eigenschaftenwerte und die in den übergeordneten Funktionen definierten Methoden und Variablen zugänglich. In dieser Beschreibung wurden von JavaScript verschachtelte Funktionen besprochen. Darüber hinaus haben wir auch die variable Umfangs-, Verschlussprozesseigenschaft, den lexikalischen Umfang, die Parameter und die Rückgabeberechnungen des JavaScript -verschachtelten Funktionen erläutert, mit Hilfe der Beispiele.