Moin,
Es ist eben eine Kreuzung aus beiden: Ich kann mit new Array() ein Array anlegen und ihm Felder unterschiedlichen Typs hinzufügen, ebenso kann ich ein Objekt mit new Object() erzeugen, ihm dann aber eine Reihe von Strings über einen rein numerischen Index anhängen.
Auch gewöhnliche Arrays sind Objekte.
ja eben, das sag' ich doch die ganze Zeit. ;-)
Aber halt nur in Javascript, während das in klassischen, etablierten Programmiersprachen meist sehr genau unterschieden wird. Sieh mal, ich bin mit Pascal, C/C++ und Assembler "groß geworden", das sind alles Sprachen mit einer sehr eindeutigen Abbildung von logischen Datenstrukturen (Namen von Datentypen) auf die physikalische Repräsentation der Daten (Anordnung im Arbeitsspeicher, Adressierung). Das ist in Javascript (IMHO leider) nicht so eindeutig, die Grenze zwischen Array und Object ist nicht klar erkennbar.
Insofern ist ein gewöhnlicher Array auch eine »Kreuzung«, weil sich ein Array wie jedes beliebige Object verhält.
Ja, so sehe ich das auch. Anscheinend ist ein Array in JS ein Object, dessen Feldnamen "zufällig" rein numerisch und fortlaufend numeriert sind.
Schönen Tag noch,
Martin
Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
Außer bei Microsoft. Da ist es umgekehrt.