El método toString() retorna una cadena representando el código fuente de la función.
Sintaxis
function.toString(indentation)
Parámetros
indentationObsoleto Gecko 17- La cantidad de espacios a indentar en la representación de cadena del código fuente. Si
indentationes menor o igual a-1, la mayoría de los espacios innecesarios son eliminados.
Descripción
El objeto Function reconduce el método toString heredado de Object; no hereda Object.prototype.toString. Para objetos Function, el método toString retorna una representación de cadena del objeto en forma de declaración de función. Esto es, toString descompila la función y la cadena retornada incluye la palabra clave function, la lista de argumentos, llaves y el código fuente del cuerpo de la función.
JavaScript llama al método toString automáticamente cuando una Function va a ser representada como un valor de texto, p.e. cuando una función es concatenada con un valor de cadena (string).
El método toString() producirá una excepción TypeError ("Function.prototype.toString called on incompatible object"), si el valor de su objeto this no es un objeto Function. Esto también ocurrirá para objetos Proxy, por ejemplo:
Function.prototype.toString.call("foo"); // TypeError
var proxy = new Proxy(function() {}, {});
Function.prototype.toString.call(proxy); // TypeError
Especificaciones
| Especificación | Estado | Observaciones |
|---|---|---|
| ECMAScript 1st Edition (ECMA-262) | Standard | Definición inicial. Implementado en JavaScript 1.1. |
| ECMAScript 5.1 (ECMA-262) The definition of 'Function.prototype.toString' in that specification. |
Standard | |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Function.prototype.toString' in that specification. |
Standard | Añadidos requerimientos más específicos para la representación de cadena. |
| ECMAScript 2017 Draft (ECMA-262) The definition of 'Function.prototype.toString' in that specification. |
Draft |
Compatibilidad con navegadores
| Prestación | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Soporte básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Prestación | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Soporte básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Notas específicas para Gecko
- Desde Gecko 17.0 (Firefox 17 / Thunderbird 17 / SeaMonkey 2.14),
Function.prototype.toString()fue implementada salvando el código fuente de la función. El descompilador fue eliminado, de modo que el parámetroindentationya no se necesita más. Ver bug 761723 para más detalles. - A partir de Gecko 38 (Firefox 38 / Thunderbird 38 / SeaMonkey 2.35),
Function.prototype.toString()produce error para objetosProxy(bug 1100936).