JavaScript Warum sind closures so wichtig?

Hendoul

Commander
Registriert
Apr. 2008
Beiträge
2.162
Steht auch in dem Artikel:

Closures are important because they control what is and isn’t in scope in a particular function, along with which variables are shared between sibling functions in the same containing scope.

Primär geht es darum die Variablen zu isolieren. Außerhalb einer Closure liegen alle deine Variablen auf dem Window object und das kann unvorhergesehene Konsequenzen haben, wenn externe Scripte eingebunden werden, z.B. weil deine Variablen ungewusst überschrieben werden oder ähnliches.
 
  • Gefällt mir
Reaktionen: DaishoCB, pcBauer und Cool Master
Allgemeiner: Closure heisst auf deutsch ja grob so etwas wie Abschluss oder Einschliessung. Was wird eingeschlossen: State, also Variablen die einen zugeordneten Wert haben.
Der Nutzen: Transport von State von einem Scope in einen komplett anderen Scope.
Angepassten Beispiel aus Wikipedia:

Python:
def f(x):
    def g(y):
        return x + y
    return g  # Return a closure.

# Assigning specific closures to variables.
a = f(1)
Du hast jetzt den State x = 1 eingeschlossen in dem Closure und kannst diesen jetzt über die Variable a woanders hin transportieren.
Also Funktion+State. Offensichtlich sehr ähnlich zu einem Objekt, welches ja ebenso Funktion+State kapselt, aber eben auch mehrere Funktionen beinhalten kann.
 
Zuletzt bearbeitet: (typos)
  • Gefällt mir
Reaktionen: Hayda Ministral
Zurück
Oben