Wie kann ich eine globale Variable in JavaScript deklarieren?
javascript
global-variables
Tänzer
quelle
quelle
window
ist nur in Browsern verfügbar. Könnten Sie Ihre Antwort bearbeiten, damit sie in allen Umgebungen funktioniert? Siehe Wie bekomme ich das globale Objekt in JavaScript?Wenn dies die einzige Anwendung ist, in der Sie diese Variable verwenden, ist Felix 'Ansatz hervorragend. Wenn Sie jedoch ein jQuery-Plugin schreiben, sollten Sie die unter dem jQuery-Objekt erforderlichen "Namespace" -Variablen und -Funktionen berücksichtigen (Details zu den Anführungszeichen später ...). Zum Beispiel arbeite ich derzeit an einem jQuery-Popup-Menü, das ich miniMenu genannt habe. Daher habe ich einen "Namespace" definiert.
miniMenu
unter jQuery und alles dort platziert.Der Grund, warum ich Anführungszeichen verwende, wenn ich über Javascript-Namespaces spreche, ist, dass sie nicht wirklich Namespaces im normalen Sinne sind. Stattdessen verwende ich einfach ein Javascript-Objekt und platziere alle meine Funktionen und Variablen als Eigenschaften dieses Objekts.
Der Einfachheit halber unterstelle ich den Plugin-Namespace normalerweise mit einem
i
Namespace für Dinge, die nur intern im Plugin verwendet werden sollten, um ihn vor Benutzern des Plugins zu verbergen.So funktioniert es:
Jetzt kann ich einfach etwas tun
$.miniMenu.i.globalVar = 3
oder$.miniMenu.i.parseSomeStuff = function(...) {...}
wann immer ich etwas global speichern muss, und ich halte es trotzdem aus dem globalen Namespace heraus.quelle
delete $.miniMenu
. B. :) . Ist es o.k?delete $.miniMenu
.BEARBEITEN Die Frage bezieht sich auf JavaScript, die Antwort bezieht sich auf jQuery, was falsch ist. Dies ist eine alte Antwort aus Zeiten, als jQuery weit verbreitet war.
Stattdessen empfehle ich, Bereiche und Abschlüsse in JavaScript zu verstehen
Alte, schlechte Antwort: Mit jQuery können Sie dies einfach tun, egal wo die Deklaration ist:
Und wird überall verfügbar sein. Ich benutze es, um schnelle Bildergalerien zu erstellen, wenn Bilder an verschiedenen Orten verteilt werden, wie zum Beispiel:
Tipp : Führen Sie den gesamten Code in der Konsole auf dieser Seite aus ;-)
quelle
$current = 0;
zu Beginn der Funktion nicht definieren , funktioniert die spätere nicht.Hier ist ein grundlegendes Beispiel für eine globale Variable, auf die der Rest Ihrer Funktionen zugreifen kann. Hier ist ein Live-Beispiel für Sie: http://jsfiddle.net/fxCE9/
Wenn Sie dies innerhalb einer jquery ready () -Funktion tun, stellen Sie sicher, dass sich Ihre Variable zusammen mit Ihren anderen Funktionen in der ready () -Funktion befindet.
quelle
Deklarieren Sie die Variable außerhalb von Funktionen
quelle
Der beste Weg ist zu verwenden
closures
, weil daswindow
Objekt sehr, sehr wird überladen wird mit Eigenschaften ist.Html
init.js (Basierend auf dieser Antwort )
script.js
Hier ist die plnkr . Hoffe es hilft!
quelle