Ich verwende JavaScript und erstelle eine globale Variable. Ich definiere es außerhalb einer Funktion und möchte den globalen Variablenwert innerhalb einer Funktion ändern und von einer anderen Funktion aus verwenden. Wie mache ich das?
quelle
Ich verwende JavaScript und erstelle eine globale Variable. Ich definiere es außerhalb einer Funktion und möchte den globalen Variablenwert innerhalb einer Funktion ändern und von einer anderen Funktion aus verwenden. Wie mache ich das?
Verweisen Sie einfach auf die Variable innerhalb der Funktion. Keine Magie, benutze einfach den Namen. Wenn es global erstellt wurde, aktualisieren Sie die globale Variable.
Sie können dieses Verhalten überschreiben, indem Sie es lokal mit deklarieren. var
Wenn Sie es jedoch nicht verwenden var
, ist ein in einer Funktion verwendeter Variablenname global, wenn diese Variable global deklariert wurde.
Aus diesem Grund wird es als bewährte Methode angesehen, Ihre Variablen immer explizit mit zu deklarieren var
. Denn wenn Sie es vergessen, können Sie versehentlich anfangen, sich mit Globals herumzuschlagen. Es ist leicht, einen Fehler zu machen. In Ihrem Fall dreht sich dies jedoch um und wird zu einer einfachen Antwort auf Ihre Frage.
console.log
sofort ausgeführt wird, die Ajax-Erfolgsfunktion jedoch erst zu einem späteren Zeitpunkt ausgeführt wird, wenn der Ajax-Aufruf tatsächlich eine Antwort zurückgibt. Dies ist ein grundlegender Punkt in Bezug auf die Asynchronität von Ajax: Code in Schließfunktionen wird nicht in der Reihenfolge mit dem Code um ihn herum ausgeführt. Dies ist wichtig zu verstehen, wenn Sie sich mit ereignisgesteuertem Code vertraut machen.quelle
Verwenden Sie einfach den Namen dieser Variablen.
In JavaScript sind Variablen nur lokal für eine Funktion, wenn sie die Parameter der Funktion sind oder wenn Sie sie explizit als lokal deklarieren, indem Sie das
var
Schlüsselwort vor dem Namen der Variablen eingeben .Wenn der Name des lokalen Werts denselben Namen wie der globale Wert hat, verwenden Sie das
window
ObjektSiehe diese jsfiddle
Bearbeiten
Mit ES2015 kam es zwei weitere Keywords
const
undlet
, die auch den Umfang einer Variablen (beeinflussen Language Specification )quelle
quelle
var
Sie einfach nicht das Schlüsselwort innerhalb der Funktion, dann müssen Sie sich nicht damit befassendocument.getElementById("outside").value = x;
Mit window ['variableName'] oder window.variableName können Sie den Wert einer globalen Variablen innerhalb einer Funktion ändern.
quelle