In Javascript hat jedes Objekt eine valueOf() und toString() Methode. Ich hätte gedacht, dass die toString() -Methode immer aufgerufen wird, wenn eine String-Konvertierung aufgerufen wird, aber anscheinend wird sie von valueOf() übertrumpft.valueOf() vs. toString() in Javascript
Zum Beispiel kann der Code
var x = {toString: function() {return "foo"; },
valueOf: function() {return 42; }};
window.console.log ("x="+x);
window.console.log ("x="+x.toString());
x=42
x=foo
Das erscheint mir als rückwärts gedruckt wird .. wenn x eine komplexe Zahl waren zum Beispiel würde ich valueOf wollen() geben mir seine Größe, aber wann immer ich in eine Zeichenfolge konvertieren wollte, würde ich etwas wie "a + bi" wollen. Und ich möchte toString() nicht explizit in Kontexten aufrufen müssen, die eine Zeichenkette enthalten.
Ist das genau so?
Haben Sie 'window.console.log (x);' oder 'alert (x);'? – Li0liQ
Sie geben "Object" und "Foo" jeweils. Lustige Sachen. – brainjam
Eigentlich alert (x); gibt "foo" und window.console.log (x); gibt "foo {}" in Firebug und das gesamte Objekt in der Chrome-Konsole an. – brainjam