Ihr Code sieht gut aus, außer der Möglichkeit, dass, wenn die Variablendeklaration innerhalb eines dom-Lesehandlers ist, es keine globale Variable sein wird ... es wird eine Abschlussvariable sein
%Vor%Um die Variable global zu machen, besteht eine Lösung darin, die Variable im globalen Gültigkeitsbereich zu deklarieren
%Vor%ein anderer ist, die Variable als eine Eigenschaft des Fensterobjekts zu setzen
%Vor%Warum das Drucken von Konsolen undefiniert ist
Sie erhalten die Ausgabe als undefined
, denn obwohl die Variable deklariert ist, haben Sie sie nicht mit einem Wert initialisiert, der Wert der Variablen wird erst gesetzt, nachdem auf das Element a
geklickt wurde wird den Wert undefined
haben. Wenn Sie die Variable nicht deklarieren, wird ein ReferenceError
Sie können die Deklaration globaler Variablen vermeiden, indem Sie sie direkt zum globalen Objekt hinzufügen:
%Vor%Ein Nachteil dieser Methode ist, dass globa.varName nicht existiert, bis diese Codezeile ausgeführt wird, aber das kann leicht umgangen werden.
Sie können auch eine Anwendungsarchitektur in Betracht ziehen, in der solche Globals in einer für alle Funktionen gemeinsamen Schließung enthalten sind oder als Eigenschaften eines geeignet zugänglichen Datenspeicherobjekts.
Tags und Links javascript jquery