zonk: Typecasting und Prototypen von Objekten

Beitrag lesen

Ich verstehe nicht, wie toString und valueOf funktionieren.

function o(){}

o.prototype.toString = function() {
return "o";
};

o.prototype.valueOf = function() {
return "1";
};

o1 = new o();

a. alert("Das Objekt " + o1);
b. alert(o1);
c. alert(o1 + o1);

a. Ich würde für a denken, es ist "Das Objekt o", ist aber "Das Objekt 1"
b. Wie ich denke "o"
c. Ich erwarte 2: trifft zu.

Wieso wird bei a. o1 nicht mit toString in eine Zeichenkette umgewandelt, in b. aber schon? alert("30" + 30) wandelt doch auch 30 in die Zeichenkette "30" mit dem Ergebnis 3030 um.