Was sind die JavaScript -Schließungen mit Beispielen?

Was sind die JavaScript -Schließungen mit Beispielen?

JavaScript ist eine vielseitige Programmiersprache, die eine Vielzahl von Programmierparadigmen unterstützt. Eines der leistungsstärksten Merkmale von JavaScript sind Verschlüsse, die es Entwicklern ermöglichen, leistungsstarke und flexible Code zu erstellen. In diesem Artikel werden wir untersuchen, was Schließungen sind und wie sie funktionieren, zusammen mit einigen Beispielen.

Was ist eine Schließung in JavaScript??

Ein Verschluss ist eine innere Funktion, die Zugriff auf die Variablen, Parameter und Argumente der äußeren Funktion hat. Die innere Funktion kann auf diese Variablen zugreifen, auch nachdem die äußere Funktion zurückgekehrt ist. Mit einem Verschluss können Sie Daten innerhalb einer Funktion einkapseln und schützen, um zu verhindern, dass sie von anderen Funktionen zugegriffen werden.

Schließungen werden erstellt, wenn eine Funktion in einer anderen Funktion definiert und als Wert zurückgegeben wird. Die zurückgegebene Funktion behält einen Verweis auf die Variablen in der äußeren Funktion bei. Dies bedeutet, dass die innere Funktion auf diese Variablen zugreifen und manipulieren kann.

Schließungen können in einer Vielzahl von Situationen verwendet werden, z. B. in privaten Variablen und Methoden, die Implementierung von Rückrufen und Ereignishandlern und die Verwaltung des Staates.

Beispiel 1: Private Variablen und Methoden

Eine der häufigsten Verwendungen von Schließungen besteht darin, private Variablen und Methoden zu erstellen. Private Variablen und Methoden sind von außerhalb der Funktion nicht zugänglich, wodurch sie sicherer und weniger anfällig für Fehler sind.

Funktion counter () let count = 0; Funktion Increment () count ++; Konsole.log (count); Rückgabeinkrement; const IncrementCount = counter (); IncrementCount (); // 1 IncrementCount (); // 2 IncrementCount (); // 3
12345678910111213141516Funktion counter () let count = 0; Funktion Increment () count ++; Konsole.log (count); return Increment; const IncrementCount = counter (); IncrementCount (); // 1incrementCount (); // 2incrementCount (); // 3

Im obigen Beispiel haben wir a erstellt Schalter Funktion, die eine Inkrementfunktion zurückgibt. Der zählen Variable ist in der definiert Schalter Funktion ist aber nur aus dem zugänglich Zuwachs Funktion. Jedes Mal die Zuwachs Die Funktion wird aufgerufen, erhöht die Zählvariable und protokolliert den neuen Wert für die Konsole.

Beispiel 2: Rückrufe und Ereignishandler

Schließungen können auch verwendet werden, um Rückrufe und Ereignishandler zu implementieren. Ein Rückruf ist eine Funktion, die als Argument an eine andere Funktion übergeben wird und beim Abschluss der anderen Funktion aufgerufen wird. Ereignishandler sind Funktionen, die als Antwort auf ein bestimmtes Ereignis aufgerufen werden, z. B. eine Schaltfläche Klick oder Formulareingabe.

Funktion fetchData (URL, Rückruf) Fetch (URL) .Dann (Antwort => Antwort.JSON ()) .Dann (Data => Callback (Daten)) .catch (Fehler => Konsole.Fehler (Fehler)); fetchData ('https: // api.Beispiel.com/Data ', Funktion (Daten) Konsole.Logdaten); );
12345678910Funktion fetchData (URL, Rückruf) Fetch (URL) .Dann (Antwort => Antwort.JSON ()) .Dann (Data => Callback (Daten)) .catch (Fehler => Konsole.Fehler (Fehler)); fetchData ('https: // api.Beispiel.com/Data ', Funktion (Daten) Konsole.Logdaten););

Im obigen Beispiel haben wir a erstellt Daten abrufen Funktion, die eine URL und eine Rückruffunktion als Argumente nimmt. Der Daten abrufen Funktion verwendet die bringen API zum Abrufen von Daten aus der angegebenen URL und übergibt diese Daten dann an die Rückruffunktion. Die Rückruffunktion ist definiert als eine anonyme Funktion, die die Daten an der Konsole anmelden.

Beispiel 3: Staat verwalten

Schließungen können auch verwendet werden, um den Staat in einem Programm zu verwalten. Status bezieht sich auf die Daten, die den aktuellen Zustand des Programms beschreiben, z. B. Benutzereingaben oder Anwendungseinstellungen.

Funktion createCounter (initialValue = 0) let count = initialValue; return increment () count ++; Konsole.log (count); , decrement () count--; Konsole.log (count); , reset () count = initialValue; Konsole.log (count); ; const counter = createCounter (5); Schalter.Zuwachs(); // 6 Zähler.Decrement (); // 5 Zähler.zurücksetzen(); // 5
123456789101112131415161718192021222324Funktion createCounter (initialValue = 0) let count = initialValue; return increment () count ++; Konsole.log (count); , decrement () count--; Konsole.log (count); , reset () count = initialValue; Konsole.log (count); ; const counter = createCounter (5); Schalter.Zuwachs(); // 6counter.Decrement (); // 5counter.zurücksetzen(); // 5

Im obigen Beispiel haben wir a erstellt Kreaturen Funktion, die ein Objekt mit drei Methoden zurückgibt: Zuwachs, Abnahme, Und zurücksetzen. Die Methoden zugreifen und manipulieren eine Zählvariable, die in der definiert ist Kreaturen Funktion. Der Anfangswert von zählen wird auf den anfänglichen Wertsparameter eingestellt, der an übergeben wird Kreaturen. Jede Methode gibt den aktualisierten Wert der zurück zählen und protokolliert es an der Konsole.

Der Schalter Objekt zurückgegeben von Kreaturen behält einen Verweis auf die Zählvariable in der Kreaturen Funktion, und erlauben die Zuwachs, Abnahme, Und zurücksetzen Methoden zum Zugriff auf und ändern den Status des Programms.

Abschluss

Abschließend sind Schließungen ein leistungsstarkes Merkmal von JavaScript, mit dem Sie flexiblen und sicheren Code erstellen können. Schließungen werden erstellt, wenn eine Funktion in einer anderen Funktion definiert und als Wert zurückgegeben wird. Die zurückgegebene Funktion behält einen Verweis auf die Variablen in der äußeren Funktion bei. Verschlüsse können in einer Vielzahl von Situationen verwendet werden, z. Durch die Verwendung von Schließungen in Ihrem JavaScript -Code können Sie robustere und wartbare Anwendungen schreiben.