Vorsicht mit dem Hash-Objekt in Prototype

3 views
Skip to first unread message

Rüdiger

unread,
Jan 15, 2010, 11:02:23 AM1/15/10
to BSP-Praxis
Ein Framework wie Prototype, das uns so viel Gutes in die Hand gibt,
wie in http://bsp.mits.ch/supplements/prototype.html beschrieben, hat
natürlich auch seine Fallstricke.

Zum Beispiel das Hash-Objekt. Da Hashs sowieso die grundlegende
Datenstruktur von JavaScript sind, ist das Prototype-Hash-Objekt nicht
wie die anderen Objekte einfach eine Extension des betreffenden
Standardobjekts:

Die Name/Wert-Paare sind im Hash-Objekt nämlich eine separate Entität,
sie sind nicht direkte Attribute des Objekts selbst. Wenn also h ein
Hash-Objekt ist, kann man zwar schreiben

h.name = value;

Aber dadurch wird das Paar name/value nicht der vom Hash-Objekt
verwalteten Wertemenge zugeordnet. Dies erreicht man nur, indem man
die set-Methode verwendet:

h.set( name, value );

Nur wenn man das Paar mit dieser Methode in den Hash aufnimmt, ist es
nachher z.B. in einem nackten "Vanilla" Hash, den man mit der toObject
()-Methode erzeugt:

h0 = h.toObject();

Dieser Tatsache muss man sich bewusst sein, sonst kann es schnell zu
Fehlern kommen. Der Nutzen des Prototype-Hashs ist aufgrund dieser
Tatsache relativ begrenzt.

Reply all
Reply to author
Forward
0 new messages