2012-08-28 2 views
5

Nach this MDN page, toLocaleString ist über das Konvertieren von Daten. Chrome stellt die Funktion jedoch für mehr als Strings zur Verfügung. Zum Beispiel:Was ist toLocaleString()?

a = function() {}; 
a.toLocaleString(); // "function() {}" 

Was ist die toLocaleString? Warum ist es zum Beispiel auf der leeren Funktion ausgesetzt?

Antwort

5

Es ist auch available auf Object.prototype, also indirekt auf so ziemlich alles.

Für Chrome können Sie bei V8's implementation aussehen, die nichts tun Phantasie:

function ObjectToLocaleString() { 
    if (IS_NULL_OR_UNDEFINED(this) && !IS_UNDETECTABLE(this)) { 
    throw MakeTypeError("called_on_null_or_undefined", 
         ["Object.prototype.toLocaleString"]); 
    } 
    return this.toString(); // <-- just calls toString 
} 
+0

Das ist großartig. Vielen Dank für die Bereitstellung eines Verweises auf den Code. – Randomblue

+0

Verstehen Sie, was das '%' vor verschiedenen Funktionsaufrufen bedeutet? – Randomblue

+0

@Randomblue: Es ist ein Aufruf an eine C++ Laufzeitfunktion, glaube ich. Suchen Sie in 'runtime.cc' nach den Funktionen. (Disclamier: Ich habe nur in der Codebase rumgespielt, also bin ich mir nicht sicher, ob ich hier richtig liege.) – pimvdb

Verwandte Themen