Ich habe eine Funktion auf window.onload Ereignis festgelegt. Innerhalb dieser Funktion habe ich eine für Schleife, die Variable Einheit bei jeder Iteration als ein neues Objekt vom Typ GAME.Unit definiert. Als Ergebnis davon habe ich eine Variable Einheit in Fenster Bereich, hält zuletzt erstellt Objekt! Ich dachte immer, Variablen innerhalb der Schleife sind loop-orientiert. Ich habe überprüft, und es gibt keine anderen Erklärungen auf Einheit Variable irgendwo in meinem Code. Was mache ich falsch?Variable, definierte insde für die Schleife der window.onload Funktion, erhält globalen Gültigkeitsbereich auf Fensterebene
-1
A
Antwort
0
Variablendeklarationen, wo immer sie auftreten, verarbeitet werden, bevor ein Code ausgeführt wird. Der Gültigkeitsbereich einer mit var deklarierten Variablen ist der aktuelle Ausführungskontext, der entweder die umschließende Funktion oder für Variablen, die außerhalb einer Funktion deklariert sind, global ist.
- MDN.
var
Scopes eine Variable auf die Funktion, nicht die Schleife.
Um eine Variable auf einen Block zu beschränken, verwenden Sie let
.
Verwandte Themen
- 1. Zugriff auf definierte Vue-Komponenten aus dem globalen Gültigkeitsbereich
- 2. Variable von verschachtelter Funktion in globalen Gültigkeitsbereich zurückgeben
- 3. Javascript: Während die Variable im globalen Gültigkeitsbereich deklariert ist, bleibt sie innerhalb der Funktion undefiniert
- 4. Globale Variable, die in einer Funktion übergeben wurde, die nicht vom globalen Gültigkeitsbereich betroffen ist
- 5. window.onload ohne globale Variable
- 6. Variable als Struktur im globalen Gültigkeitsbereich - wie definieren?
- 7. Ist eine Funktion im globalen Gültigkeitsbereich eine Sperrung?
- 8. Webpack-Ausführungsmodul im globalen Gültigkeitsbereich
- 9. Nicht definierte Variable in der While-Schleife
- 10. Wie erhält man definierte Variablen in Swift?
- 11. window.onload Funktion nur auf der ersten Ladeseite
- 12. Variable, die früher definierte Variable in Schleife nach Nummer ruft
- 13. Konvertieren aller Variablen in globalen Gültigkeitsbereich
- 14. window.onload, die eine Funktion zurückgeben
- 15. So überprüfen Sie, ob die Funktion zum Zeitpunkt der Kompilierung im globalen Gültigkeitsbereich deklariert wird
- 16. php Unset lokale Referenz, die den globalen Gültigkeitsbereich beeinflusst
- 17. Zugriff auf eine Variable, die nicht im Gültigkeitsbereich ist Swift
- 18. onload = Funktion vs window.onload = Funktion
- 19. TensorFlow: Definition von Variablen im globalen Gültigkeitsbereich
- 20. std :: sort() nicht für die globalen Betreiber sieht <() definierte
- 21. Node.js + MongoDB globale Variable und Gültigkeitsbereich
- 22. C++ Variable nicht im Gültigkeitsbereich
- 23. Nicht definierte Funktion oder Variable 'BufferedImageLuminanceSource'
- 24. Wie erhält man die Variable, der eine Funktion zugewiesen ist?
- 25. Nicht definierte Funktion oder Variable 'DataMatrix'
- 26. Die Funktion window.onload läuft nicht bei Aktualisierung
- 27. Javascript - Uncaught Reference für einen definierte Variable
- 28. Python3 - schafft globalen Variable (Liste) von Funktion
- 29. Nicht definierte Variable mit GET-Funktion
- 30. Wie erhält man Signaturen für die Variable im Tuareg-Modus?
Ihre 'console.log()' Anweisung ist ** innerhalb der Funktion **! Sie suchen nicht im globalen Geltungsbereich! – Quentin
Natürlich ist es innerhalb der Funktion, aber es ist nicht innerhalb der Schleife, wo Variable erstellt. Wenn ich es anderswo in meinen Code lege, Variable immer noch da. – DesiredName
Die 'var'-Anweisung deklariert eine Variable, deren Abschlussbereich festgelegt ist. (Das bedeutet, dass die Variable im gesamten Funktionskörper zugänglich ist.) Wenn Sie möchten, dass die Variable nur in der Schleife zugänglich ist, müssen Sie 'let' oder' const' verwenden. Auch Ihre 'console.log' ist innerhalb der Funktion, so dass es nicht wirklich im Fensterbereich ist. – Razem