ich die folgende Analyse von David Mark über die js Rahmen „Sencha“ lese: https://gist.github.com/3279190 und dort sagt er ...Gibt es einen Unterschied zwischen einer globalen Variablen und einer Eigenschaft des globalen Objekts
Was sie wollten, war eine globale Variable, aber sie endete mit einer Eigenschaft des globalen Objekts. Gemäß den Spezifikationen und (und der Implementierungshistorie) gibt es genügend Unterschiede zwischen den beiden, dass Vorsicht geboten ist, um sie nicht zu verwechseln (wie hier).
... aber soweit ich war bewusst, dass es kein Unterschied zwischen var my_global = 123;
und (in einer Browser-Umgebung) window.my_global = 123;
war (in diesem Beispiel angenommen, ich die Umgebung ein Browser war - daher der Einsatz von window
, aber ich hätte einfach this.my_global
stattdessen verwenden können, da offensichtlich das globale Objekt anders sein würde, wenn es in verschiedenen Umgebungen ausgeführt wird).
Aber diese geringfügige Abweichung zu ignorieren, ist es ein Unterschied zwischen einer Eigenschaft auf das globale Objekt zuweisen und eine globale Variable zu schaffen? Ich dachte nicht, und das Erstellen einer globalen Variable war nur eine weitere Möglichkeit, dem globalen Objekt eine Eigenschaft zuzuweisen.
Ich glaube, es kann ein Problem in einigen Browsern geben, wenn sie ein Element mit einer ID von "my_global" hatten, dann kann das anscheinend Probleme mit JavaScript verursachen, aber ich bin mir nicht sicher, wie/was das verursacht Problem (zB verursacht das Zuweisen einer Eigenschaft zum globalen Objekt das Element-ID-Problem oder gibt es eine globale Variable, die das Element-ID-Problem verursacht?)
Kann jemand dies bitte für mich klären?
Danke für die Antwort so klar. Ich hatte eine Idee, wenn es um die Deklaration mit 'var' vs. nicht ging, aber hatte keine Ahnung von dem' [[Configurable]] 'Attribut. – Loktar
Eine der größten Antworten, die ich auf SO gesehen habe. Ernst. –