Heim  >  Artikel  >  Web-Frontend  >  Was ist ein js-Abschluss? JS-Verschlüsse verstehen

Was ist ein js-Abschluss? JS-Verschlüsse verstehen

不言
不言Original
2018-09-01 15:56:552553Durchsuche

Was ist Schließung in js? Für diejenigen, die zum ersten Mal mit dem Konzept des Abschlusses konfrontiert werden, glaube ich, dass viele Freunde es nicht verstehen werden. Der folgende Artikel wird Ihnen sagen, Wie man den js-Abschluss versteht.

Der Abschluss ist ein schwieriger Punkt in js und seine Besonderheit: Viele fortgeschrittene Anwendungen basieren auf Abschlüssen. Schauen wir uns zunächst das Konzept des js-Abschlusses an.

Was ist eine Schließung?

Gemäß der offiziellen Erklärung: Der sogenannte Abschluss bezieht sich auf einen Ausdruck (normalerweise eine Funktion), der viele Variablen und eine an diese Variablen gebundene Umgebung hat, sodass diese Variablen auch der Ausdrucksteil sind die Formel.

Wenn ich dieses Konzept allein betrachte, glaube ich, dass es für viele Freunde schwierig sein wird, es zu verstehen. Schließlich ist diese Aussage zu „offiziell“, also sprechen wir über das Verständnis der js-Verschlussmethode. Damit Sie besser verstehen, was ein js-Abschluss ist.

Verständnis von js-Verschlüssen

Schauen wir uns zunächst ein Beispiel an:

def foo() {
    var a = 1;
    def bar() {
        a = a + 1;
        alert(a);
    }
    return bar;
}
var closure = foo();  // 这个时候返回的是 bar() 这个函数外加其包上的变量 a;
var closure2 = foo(); // 这里同样生成了另外一个闭包(实例)
closure(); // 2
closure2(); // 2 , 绑定了另外一份变量 a
closure(); // 3

Aus diesem Beispiel können wir sehen:

Für Bei der regulären foo()-Methode sollte die Existenz der darin enthaltenen Variablen a verschwinden, nachdem die foo()-Methode ausgeführt wurde, aber die foo()-Methode gibt eine neue quadratische bar() zurück, und diese Methode Die Variable a der Auf die foo()-Methode wird zugegriffen (JavaScript greift über die Scope-Kette auf die übergeordnete Eigenschaft zu), und die Existenz der Methode bar() verlängert die Existenzzeit der Variablen a, was dem Schließen der Variablen a in ihrem eigenen Bereich As ähnelt Solange die Methode bar() nicht abgelaufen ist, existiert die Variable a immer mit der Methode bar(), und die Existenz der Variablen a und der Methode bar() wird als Abschluss bezeichnet.

Können wir anhand der obigen Beispiele unser Verständnis von js-Verschlüssen noch einmal zusammenfassen?

Ein Abschluss ist ein lexikalischer Bereich, der von einer Funktion erstellt wird. Nachdem die darin erstellten Variablen referenziert wurden, können sie außerhalb dieser lexikalischen Umgebung frei verwendet werden.

Abschlüsse werden normalerweise zum Erstellen interner Variablen verwendet, sodass diese Variablen nicht nach Belieben von außen geändert werden können und über bestimmte Funktionsschnittstellen bedient werden können.

Okay, jetzt haben Sie ein klareres Verständnis von js-Verschlüssen. Wenn Sie es immer noch nicht verstehen, können Sie die Spalte Javascript-Video-Tutorial auf der chinesischen PHP-Website lesen, um mehr darüber zu erfahren .

Verwandte Empfehlungen:

Detaillierte Erläuterung der Verwendung von Abschlüssen in js

JS-Abschlüsse in einer Minute verstehen_Javascript-Kenntnisse

Wie man Abschlüsse in js versteht

Das obige ist der detaillierte Inhalt vonWas ist ein js-Abschluss? JS-Verschlüsse verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet Javascript?Nächster Artikel:Was bedeutet Javascript?