Wie kann man Verschlüsse in Javascript verstehen?
Im Allgemeinen ist eine Schließung eine Funktion, die an eine oder mehrere externe Variablen gebunden ist. Wenn es aufgerufen wird, kann die Funktion auf diese Variablen zugreifen. In JavaScript werden Schließungen oft implementiert, wenn Funktionen in einer anderen Funktion deklariert werden. Die innere Funktion greift auf Variablen der übergeordneten Funktion zu, selbst nachdem die Elternfunktion beendet wurde
In dieser Aussage ist "eine Schließung eine Funktion, die an eine oder mehrere externe Variablen gebunden ist", bedeutet das, dass wir das tun können: var myFun = Function(msg){...};
ist es richtig?
Was bedeutet "selbst nachdem die Elternfunktion beendet wurde"?
closure ist eine Funktion, die an eine oder mehrere externe Variablen gebunden ist
Ein Beispiel für dieses Konzept ist, dass die Funktionsleiste an die externen Variablen x, y und z gebunden ist:
%Vor% Die Variable closure
bezieht sich auf die innere Funktion bar
, die vom Aufruf an foo
zurückgegeben wurde. Das Aufrufen von closure
ist wie das erneute Eingeben des Bereichs in foo
, wodurch alle lokalen Variablen und Parameter von foo
sichtbar werden.
, selbst nachdem die Elternfunktion beendet wurde
Dies bedeutet, dass nach der Ausführung von foo
die in der Variablen closure
gespeicherte zurückgegebene Funktion den Zustand foo
beibehalten hat. Sie können sogar mehrere unabhängige Schließungen erstellen, indem Sie foo
erneut aufrufen:
Ihre Interpretation von externen Variablen ist falsch. Es bedeutet wirklich, dass es das tun kann:
%Vor%Tags und Links javascript closures