2010-03-11 32 views

Antwort

17

Die zweite Zeile schlägt fehl, da sie als Zahl "100." gefolgt von "toString" analysiert wird.

die Punktnotation zu verwenden, wird Jedes folgende Arbeiten:

(100).toString 
100.0.toString 
100..toString 
var a = 100; 
a.toString 

Wenn Sie Aufruf die toString Funktion versuchen, werden Sie auch die Klammern enthalten müssen:

(100).toString() 
100.0.toString() 
100..toString() 
var a = 100; 
a.toString() 

Ich bevorzuge Klammern (oder eine Variable, wenn ich bereits eine habe), weil die Alternativen verwirrend und nicht intuitiv sein könnten.

+0

Ein anderes Beispiel: '100..toString()' funktioniert auch, da die erste Periode als Teil der Nummer und die zweite als Teil der Syntax für den Zugriff auf Eigenschaften gezählt wird. –

+0

Beachten Sie, dass '100' und' 100.0' nicht identisch sind. – Gumbo

+0

@ Max, guter Punkt. Es sieht irgendwie lustig aus, aber ich werde das auch hinzufügen. –

5

Verwenden Sie stattdessen (100).toString.

1

Parens ist der beste Weg zu gehen. Sie haben das gleiche Problem mit Funktionsdefinitionen.

function() {}.call() => fails 
(function() {}).call() => succeeds