Back to blog
Feb 2022·1 min read

JavaScript - Closures

#javascript

Eine Closure entsteht, wenn eine Funktion auf eine Variable oder Funktion außerhalb ihres eigenen Scope zugreift. Im Grunde genommen ist eine Closure eine Funktion, die sich an die Werte erinnert, die im umgebenden Scope verfügbar waren, als sie erstellt wurde.

Lass uns das an einem Beispiel erklären:

function greeting(name) {
  return function() {
    console.log("Hello, " + name + "!");
  };
}

const greetJohn = greeting("John");
const greetMary = greeting("Mary");

greetJohn(); // Output: Hello, John!
greetMary(); // Output: Hello, Mary!

In diesem Beispiel haben wir eine Funktion namens "greeting", die eine Closure zurückgibt, die den Namen speichert, der beim Aufruf der "greeting"-Funktion übergeben wurde. Wir weisen dann die Closure jeder Person zu, die wir begrüßen möchten, indem wir sie in Variablen speichern.

Wenn wir die gespeicherten Closures aufrufen, erinnern sie sich an den Namen, den sie beim Erstellen erhalten haben, und geben entsprechend "Hello, [Name]!" aus.

Closures können sehr nützlich sein, um Daten zu verstecken und eine saubere Schnittstelle für andere Funktionen bereitzustellen. Sie können jedoch auch sehr verwirrend sein, wenn man sich nicht bewusst ist, welche Variablen im Scope sind und welche nicht.

Um sicherzustellen, dass Closures korrekt funktionieren und keine unerwarteten Ergebnisse liefern, ist es wichtig, den Scope genau zu verstehen und sicherzustellen, dass man die Variablen und Funktionen korrekt zugreift und verwendet.

NewerJavaScript - GeneratorenOlderGoPro-Fotos automatisch umbenennen und kopieren