Rolf b: Java Script Newbie Frage

Beitrag lesen

Es ist nicht das gleiche.

Beispiel 1 überschreibt ein existierendes Array. Ich habe nachher immer genau einen Eintrag. Wenn das Script im strict-Mode läuft, gibt's eine Fehlermeldung. Man müsste ein "var" vor die Zuweisung schreiben. Allerdings muss man dann darauf achten, dass der Code auch im globalen Scope ausgeführt wird.

Beispiel 2 ist ungenau - man sollte auch die Zuweisung mit "window." prefixen, damit der Code im strict Mode funktioniert. Es legt in der globalen Variable das Array bei Bedarf an und fügt dann einen Eintrag hinzu. D.h. wenn es im Beispiel 2 bereits mit N Einträgen existiert, hat man nachher N+1 Einträge.

Nebenbei: Dass "window" das globale Objekt bezeichnet, ist eine Spezialität für JavaScript im Browser. Andere Systeme, wie z.B. node.js, können das globale Objekt unter anderem Namen bereitstellen.

Rolf