Hallo,
Scheint so. Wenn immer eine weitere Auswertung stattfinden soll, wie eine Addition oder Konkatenation, dann ist es auch logisch, dass man eine bestimmte Eigenschaft/Methode des Objekts meint, seinen eigentlichen Wert, den dann eben valueOf() liefert:
Nein, das finde ich gar nicht logisch:
z = new Number (5);
Number.prototype.toString = function() {
return "fünf";
};
alert(z); // fünf
alert(z+5); // 10
alert(z+ " Kisten"); // 5 Kisten
z2 = 5;
alert(z2); // 5
alert(z2+5); // 10
alert(z2+ " Kisten"); // 5 Kisten
Angenommen, die toString()-Methode würde für alle Zahlen eine verbale Umschreibung zurückgeben. Dann macht es imo keinen Sinn, wenn
alert(z+ " Kisten")
nicht "fünf Kästen" ausgibt.
Noch ärgerlicher ist, wenn
alert(z2); nicht "fünf", sondern 5 ausgibt, nur weil z2 primitiv deklariert wurde.