gruss eddi,
wo ist der Unterschied, zwischen einem assoziativem Array und
einem Objekt;
den unterschied machen die jeweiligen kontruktoren -
"Array" zum einen sowie "Object" zum anderen;
bzw. was mach dies zu einem Objekt?
<spitzfindisch>
_in_javascript_ist_schlussendlich_alles_objekt_
</spitzfindisch>
wie Thomas Meinike schon ausfuehrte:
[pref:t=85970&m=507426]
Es ist ein assoziatives Array, welches implizit in ein Objekt
konvertiert wird und eben auch wie ein Objekt angesprochen
werden kann. Spezielle Array-Eigenschaften und -Methoden
stehen aber nicht zur Verfuegung.Umgekehrt lassen sich bekanntlich Objekte wie assoziative
Arrays behandeln, also object.property korrespondiert mit
object["property"].MfG, Thomas
es liegt also am programmierer, fuer welchen konstruktor
er sich entscheidet, wobei ich behaupten moechte, dass
in den meisten faellen gedankenlos gehandelt wurde, wo
es zur anwendung von sogenannten "assoziativen arrays"
gekommen ist - warum:
moechte ich indizierte daten in einer struktur speichern,
dann entscheide ich mich fuer ein array, denn hier stehen
mir sowohl die eigenschaft "length" als auch alle moeglichen
methoden zum manipulieren dieser struktur zur verfuegung;
bin ich jedoch gezwungen, daten ueber schluesselwoerter
abzulegen/abzufragen, dann genuegt mir hingegen voellig
der "Object"-konstruktor, denn obwohl ich auch ein array
um die vielzitierten "assoziativen" eigenschaften erweitern
kann, erschliessen sich mir diese daten weder ueber die
veraenderte length-eigenschaft bzw. einen index, noch werden
sie von einer der array-methoden erfasst;
collections sind die einzigen konstrukte, die auch keyvalues
indizieren - leider sind sie nicht bestandteil des javascript-
kerns sondern nur moderner DOMs und auch dort wieder hoechst
unterschiedlich implementiert;
zu "assoziativen arrays" habe ich mich auch schon mal polemischer
ausgelassen: http://forum.de.selfhtml.org/archiv/2004/7/84257/#m493695
by(t)e by(t)e - peterS. - pseliger@gmx.net
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)