Abschlussanwendungsszenarien umfassen: 1. SetTimeout-Aufruf unter Verwendung einer Funktionsreferenz; 2. Ersetzen Sie globale Variablen durch einen kleinen Bereich. 3. Öffentliche Methoden mit Zugriff auf private Variablen und private Funktionen.
Auf lokale Variablen innerhalb der Funktion kann nicht von außerhalb der Funktion zugegriffen werden, aber Funktionen innerhalb der Funktion können auf lokale Variablen innerhalb dieser Funktion zugreifen, sodass externer Zugriff auf die Funktion möglich ist wird durch Schließungen lokaler Variablen innerhalb der Funktion erreicht. Es kann jedoch leicht zu Speicherlecks führen und sollte mit Vorsicht verwendet werden.
Verwendungsszenarien für Schließungen:
1], setTimeout-Aufruf mit Funktionsreferenzmethode
Der erste Parameter von setTimeout ist normalerweise eine Funktion ausgeführt wird, ist der zweite Parameter eine Verzögerungszeit.
Wenn ein Codeabschnitt über setTimeout aufgerufen werden möchte, muss er als ersten Parameter einen Verweis auf ein Funktionsobjekt übergeben, der Verweis auf dieses Funktionsobjekt kann jedoch keine Parameter für das aufgerufene Objekt bereitstellen verzögert. Zu diesem Zeitpunkt können Sie eine andere Funktion aufrufen, um einen Aufruf an die interne Funktion zurückzugeben, und die Referenz des internen Funktionsobjekts an die setTimeout-Funktion übergeben. Die für die Ausführung der internen Funktion erforderlichen Parameter werden an diese übergeben, wenn die externe Funktion aufgerufen wird Bei der Ausführung der internen Funktion wird setTimeout verwendet. Es besteht keine Notwendigkeit, Parameter zu übergeben, da die interne Funktion weiterhin vor einer Fälschung der bereitgestellten Parameter schützen kann, wenn die externe Funktion aufgerufen wird.
2], kleiner Bereich anstelle globaler Variablen
3], privilegierte Methode für den privaten Zugriff Variablen ?
Privilegierte Methoden: öffentliche Methoden, die Zugriff auf private Variablen und private Funktionen haben
Private Variablen umfassen:
1), lokale Variablen
2) Parameter der Funktion
3) Andere innerhalb der Funktion definierte Funktionen (Abschlüsse)
Im Konstruktor des obigen Codes sind zwei privilegierte Methoden definiert : getName(), setName(), auf diese beiden Methoden kann über das Objekt zugegriffen werden, und beide haben Zugriff auf den privaten Variablennamen, es gibt jedoch keine Methode für den Zugriff auf den Namen außerhalb des Personenkonstruktors. Da diese beiden Methoden innerhalb der Funktion definiert sind, kann über die Bereichskette als Abschluss auf den Namen zugegriffen werden
Empfohlenes Tutorial: „JS-Tutorial“
Das obige ist der detaillierte Inhalt vonWelche Einsatzszenarien gibt es für Verschlüsse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!