molily: Browserweiche kompakter programmieren

Beitrag lesen

Hallo,

var browser = new Array();
browser["vIsMoz"]    = false;

Es gibt in JavaScript keine »assoziierten Arrays« in dem Sinne, also Arrays, deren Elemente String-Indizes haben. Dass es dennoch funktioniert, liegt daran, dass ein Array-Objekt vom Typ object ist. Wenn eine Variable nicht gerade vom »primitiven« Type boolean, string oder number ist, funktioniert das Zuweisen von Objekteigenschaften immer. Es sind also keine Array-Elemente, die bei browser['bla']=... entstehen (browser.length bleibt 0), sondern Objekteigenschaften. Das heißt, es ist von diesem Standpunkt aus gesehen letztlich egal, ob du new Array(), new Function(), new Number(), new Boolean(), new String(), new Date() oder new Image() usw. schreibst, es entstehen immer Objekte des Typs object, denen du über browser['bla'] oder browser.bla Eigenschaften hinzufügen kannst. Abgesehen von der Kritik an dem grundlegenden Konzept wäre also wenn überhaupt new Object() bzw. {} angebracht.

Mathias