El método toString()
retorna una cadena representando el código fuente de la función.
Sintaxis
function.toString(indentation)
Parámetros
indentation
Obsoleto Gecko 17- La cantidad de espacios a indentar en la representación de cadena del código fuente. Si
indentation
es 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ámetroindentation
ya 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).