Jede Eigenschaft des Objekts window
ist eine globale Variable. Dies bedeutet, dass Sie so etwas tun können:
Aus diesem Grund habe ich mich immer gefragt, welchen Zweck es hatte, in Code wie diesem auf window
zu verweisen.
Wenn Sie window
weglassen könnten und Code haben, der genau das Gleiche macht:
Die Verwendung scheint auch inkonsistent zu sein; Ich sehe fast nie window.alert
, aber ich werde häufig window.location
sehen.
Mögen die Leute es einfach, window
zu referenzieren, um ihren Code verständlicher zu machen? Gibt es einen guten Grund dafür, von dem ich nichts weiß?
Eine Situation, in der es hilfreich ist, explizit zu sein, ist, dass es innerhalb einer Funktion, die eine globale Variable ändern soll, sofort klar ist. Zum Beispiel:
%Vor% Hat jemand vergessen, test
mit var
zu deklarieren? Oder ist diese absichtliche Änderung eines globalen? Vergleichen Sie:
Jetzt ist sofort klar, was beabsichtigt ist. Natürlich, Globals sollten in erster Linie vermieden werden, aber Sie verstehen, was ich meine.
window ist implizit, aber es ist gute Code-Praxis, Mehrdeutigkeit wo möglich zu vermeiden.
Ich denke, es wird im Allgemeinen verwendet, um mögliche Zusammenstöße mit anderen Variablen in einer umschließenden Schließung zu vermeiden. Auch Style-Checker wie jslint werden Fehler auslösen, wenn Sie auf globale Eigenschaften ohne explizites Objekt zugreifen (mit Ausnahme von bekannten Eigenschaften wie window
selbst.)
Wenn Sie in einem Browser in mehrere Fenster gelangen, z. B. mit Iframes usw., müssen Sie möglicherweise explizit einen Verweis auf das Fensterobjekt weitergeben. (Und wenn Sie sich wirklich für die Details interessieren, sind das Fensterobjekt oder zumindest Verweise darauf sehr speziell und können nicht einmal in Standardjavascript beschrieben werden.)
Tags und Links javascript