JavaScript Closures
JavaScript-Variablen können lokale oder globale Variablen sein.
Private Variablen können Verschluss verwendet werden.
globale Variablen
Die Funktion kann Variablen, die durch die internen Funktionen definiert zugreifen, wie ?:
Funktion kann auch außerhalb der Funktion definierten Variablen zugegriffen werden, wie zB:
Ein Beispiel für den Rücken, a ist eine globale Variable.
In der Web-Seite gehören zu den globalen Variablen Fensterobjekt.
Globale Variablen können in allen Skripten auf der Seite verwendet werden.
Im ersten Fall ist eine lokale Variable.
Lokale Variablen können nur dann verwendet werden, um seine interne Funktion zu definieren. Für andere Funktion oder Script-Code nicht verfügbar ist.
Auch globale und lokale Variablen mit dem gleichen Namen, sie sind auch zwei verschiedene Variablen. Ändern einem, wird es nicht den Wert der anderen beeinflussen.
Wenn Sie nicht über eine Variable mit dem Schlüsselwort var deklarieren, dann ist es eine globale Variable, obwohl es innerhalb der Funktion definiert ist. |
Variable Lebenszyklus
Umfang der globalen Variablen sind global, das heißt, während des gesamten JavaScript-Programm, die globalen Variablen sind überall.
In der Variable innerhalb einer Funktion deklariert, nur innerhalb der Funktion arbeiten. Diese Variablen sind lokal, örtlich ist; Parameter der Funktion lokalisiert ist, nur innerhalb der Funktion zu arbeiten.
Gegen Dilemma
Wenn Sie möchten, auf einige numerische Statistiken, sich vorzustellen, und die Zähler in allen Funktionen zur Verfügung stehen.
Sie globale Variablen verwenden können, Funktion setzt der Zähler erhöht wird:
Beispiele
Funktion add () {
Zähler + = 1;
}
add ();
add ();
add ();
// Zähler ist jetzt 3
Versuchen »
Der Zählerwert Änderung aufgetreten bei der Implementierung von add () Funktion.
Aber die Frage ist, kann jedes Skript auf der Seite des Zählers zu ändern, auch wenn es kein Anruf () Funktion hinzuzufügen.
Wenn ich eine Funktion innerhalb des Zählers erklären, wenn nicht die Funktion aufrufen, wird nicht den Wert des Zählers zu ändern:
Beispiele
var counter = 0;
Zähler + = 1;
}
add ();
add ();
add ();
// Intention zu Ausgang 3, der jedoch nicht, ist der Ausgang 1!
Versuchen »
Der obige Code wird nicht korrekt herauskommen, jedes Mal wenn ich () Funktion hinzuzufügen rufen, wird der Zähler auf 1 gesetzt werden.
JavaScript Inline - Funktion kann dieses Problem lösen.
JavaScript verschachtelte Funktionen
Alle Funktionen können globale Variablen zugreifen.
In der Tat, in JavaScript können alle Funktionen zugreifen, sie auf dem Boden des Bereichs.
JavaScript unterstützt verschachtelte Funktionen. Die verschachtelte Funktion können Variablen auf der Funktionsschicht zugreifen.
In diesem Beispiel wird die verschachtelte Funktion plus () kann die Zählervariable übergeordneten Funktion zugreifen:
Beispiele
var counter = 0;
Funktion plus () {counter + = 1;}
PLUS ();
Rückkehr Zähler;
}
Versuchen »
Wenn wir und außerhalb () Funktion zugreifen, so dass wir die Not der Zähler ansprechen kann.
Wir müssen auch diesen Zähler zu gewährleisten = 0 nur einmal.
Wir brauchen Schließung.
JavaScript Closures
Denken Sie daran, die Funktionsaufrufe selbst tun? Diese Funktion tun?
Beispiele
var counter = 0;
Rückkehr function () {return Zähler + = 1;}
}) ();
add ();
add ();
add ();
3 // Zähler
Versuchen »
Beispiele für analytische
Fügen Sie das Wort Variable gibt der Rückgabewert der Funktion selbst nennt.
Selbstaufruffunktion wird nur einmal durchgeführt. Setzen des Zählers auf Null. Und zurück zum Funktionsausdruck.
Variable hinzufügen als eine Funktion der Verwendung. Der große Teil ist, dass es auf den Umfang der Funktionsschicht Zähler zugegriffen werden kann.
Dies wird JavaScript Verschlüsse genannt. Es verfügt über eine private Variable, so dass die Funktion möglich wird.
Zähler, dass der Umfang des Schutzes einer anonymen Funktion kann nur durch die add-Methode geändert werden.
Verschlüsse sind zugänglich auf der einen Funktionsumfang Variable innerhalb einer Funktion, auch wenn die Layer-Funktion geschlossen wurde. |