Hallo,
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. Insofern ist ein gewöhnlicher Array auch eine »Kreuzung«, weil sich ein Array wie jedes beliebige Object verhält. Dasselbe gilt für NodeList, HTMLCollection und NamedNodeMap. Das ist keine Eigenheit von den letzten drei.
Mathias