Eine kurze Analyse der Lösung zu den variablen Änderungen, die durch asynchrone JavaScript -Funktionen verursacht werden
for (var i = 0; i <3; i ++) {setTimeout (function () {console.log (i)}, 0);} Konsolenausgabe: 333Dies liegt daran, dass bei der Ausführung der Methode die für die Schleife ausgeführt wurde und jedes Mal, wenn sie ausgeführt wird, 3 anstelle von 1-2-3. Zu diesem Zeitpunkt können wir die sofortige Ausführungsfunktion verwenden, um eine Kopie der Variablen für jede Schleife zu erstellen, damit Timer aufgerufen werden kann, um dieses Problem zu lösen.
für (var i = 0; i <3; i ++) {setTimeout ((function () {var _i = i; return function () {console.log (_i)};}) (), 0); } Konsolenausgabe: 123Die obige kurze Analyse des Problems der Lösung variabler Änderungen, die durch asynchrone Ausführung von JavaScript -Funktionen verursacht werden, ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.