Rolf b: Array – Sprachelement und Standardobjekt

Beitrag lesen

Hallo Felix,

ich sage dazu, dass ich den ganzen Bereich für einen der schmutzigeren Teile von JavaScript halte. Es ist historisch gewachsen und nicht mehr änderbar, aber für gut designed halte ich das nicht.

Das "assoziative Array", das hier im Wiki auftaucht, muss dringend von den Arrays weg und zu den Objekten. In meiner Überarbeitung zum Objekte und Eigenschaften Artikel, den Du ja auch schon entdeckt und bearbeitet hast :), gehe ich ein wenig darauf ein. Dort zeige ich auch eine ähnliche Struktur wie Du oben.

Ich habe Orloks Stand zum Array jetzt nicht im Kopf, aber er muss noch dringend vor der Array vs Object Konfusion warnen: Arrays sind Objekte mit einer winzigen Besonderheit: dem length Property, das automatisch aktualisiert wird wenn man Indizes im Bereich 0 bis 2^31-1 verwendet. Verwendet man andere Indizes, verhält sich das Array wie ein stinknormales Object.

for...in iteriert übrigens sehr wohl über die Prototypen. Aber das length Property eines Array hat das Attribut enumerable:false, und die diversen Eigenschaften von Array.prototype und Object.prototype ebenfalls. Darum siehst Du sie nicht. Siehe dazu Object.keys und Object.getOwnPropertyNames, bzw. den in Arbeit befindlichen Artikel auf meiner Benutzerseite :)

Rolf