Heim  >  Artikel  >  Web-Frontend  >  So lösen Sie das Problem des For-Schleifenschlusses in JS

So lösen Sie das Problem des For-Schleifenschlusses in JS

小云云
小云云Original
2018-02-24 13:59:542712Durchsuche

In diesem Artikel stellen wir Ihnen zwei Methoden zur Lösung des for-Schleifenschließungsproblems in JS vor. Wir hoffen, dass es Ihnen helfen kann.


Mit einem Codeausschnitt wie diesem gehen Anfänger davon aus, dass beim Klicken auf Li nacheinander die entsprechenden 0, 1, 2, 3, 4 angezeigt werden , 5, aber das tatsächliche Ergebnis ist so


Egal auf welche Schaltfläche wir klicken, das letzte, was angezeigt wird, ist 6. Dies ist das klassische Problem des Schleifenschlusses.

Lassen Sie uns zunächst verstehen, was ein Abschluss ist: Ein Abschluss ist ein Codeblock, der freie (nicht an ein bestimmtes Objekt gebundene) Variablen enthalten kann Diese werden innerhalb eines Codeblocks oder in einem beliebigen globalen Kontext definiert, werden jedoch in der Umgebung definiert, in der der Codeblock definiert ist (lokale Variablen). Das Wort „Abschluss“ ergibt sich aus der Kombination eines auszuführenden Codeblocks (da die freien Variablen im Block enthalten sind, werden diese freien Variablen und die Objekte, auf die sie verweisen, nicht freigegeben) und der für die freien Variablen bereitgestellten Bindung. Computerumgebung (Umfang). Unterstützung für Abschlüsse in unterschiedlichem Ausmaß findet sich in Sprachen wie Scala, Scheme, Common Lisp, Smalltalk, Groovy, JavaScript, Ruby, Python, Lua, Objective C und Java (Java8 und höher).

Mein einfaches Verständnis ist: Eine Funktion ist in einer anderen Funktion verschachtelt und eine Funktion im Inneren muss auf die Variablen der äußeren Funktion zugreifen, sodass ein Abschluss gebildet wird, um eine bestimmte Funktion beizubehalten die Werte einiger lokaler Variablen.

Es gibt jedoch einige häufige Abschlussprobleme in JavaScript, wie zum Beispiel das obige Beispiel. Schauen wir uns also an, wie diese Probleme gelöst werden können.

Lösung 1: Fügen Sie eine Abschlussschicht hinzu, i wird in Form eines Funktionsparameters an die innere Funktion übergeben:

Das Ergebnis ist das Klicken Das entsprechende Li wird angezeigt. Klicken Sie beispielsweise auf das dritte Li. Der folgende Effekt wird angezeigt:

Lösung 2: Suchen Sie ein Attribut, um das i zu speichern Wert, und öffnen Sie dann den Wert

Klicken Sie auf das dritte Li, und der folgende Effekt wird angezeigt:

Verwandte Empfehlungen:

Detaillierte Erklärung der JavaScript-For-Schleife bei Beurteilungsanweisung

Die Verwendung der For-In-Schleife und der For-Schleife zum Durchlaufen von Arrays

for-Schleife in JavaScript Vorsichtsmaßnahmen bei der Verwendung von

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des For-Schleifenschlusses in JS. 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