2012-08-28 3 views
5

De acuerdo con this MDN page, toLocaleString trata sobre la conversión de fechas. Sin embargo, Chrome expone la función en más de cadenas. Por ejemplo:¿Qué es toLocaleString()?

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

¿Qué es toLocaleString? ¿Por qué está expuesto, por ejemplo, en la función vacía?

Respuesta

5

También es available en Object.prototype, por lo que indirectamente en prácticamente cualquier cosa.

para Chrome, se puede ver en V8's implementation, que no hace nada elegante:

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

Eso es grande. Gracias por proporcionar una referencia al código. – Randomblue

+0

¿Entiende lo que significa '%' frente a varias funciones? – Randomblue

+0

@Randomblue: Es una llamada a una función de tiempo de ejecución C++, creo. Busca en 'runtime.cc' las funciones. (Advertencia: simplemente he estado metiendo la pata en la base de código, así que no estoy seguro si estoy en lo correcto aquí). – pimvdb