Tradução em progresso.

O método toString() retorna uma string representando o código fonte da função.

Sintaxe

function.toString()

Valor de retorno

Uma string representando o código fonte da função.

Descrição

O objeto da Function substitui o método toString herdado de Object; ele não herda Object.prototype.toString. Para objetos Function definidos pelo usuário, o método toString retorna uma string contendo o seguimento de texto de origem que foi usado para definir a função

O JavaScript chama o método toString automaticamente quando uma Function pode ser representada como um valor de texto. e.x. quando uma função é concatenada com uma string.

O método toString() lançará uma exceção do tipo TypeError ("Function.prototype.toString called on incompatible object") se o valor this do objeto não é um objeto do tipo Function.

Function.prototype.toString.call('foo'); // TypeError

Se o método toString() é chamado por objetos de funções embutidas ou por uma função criada por Function.prototype.bindtoString() retorna uma string de uma função nativa que parece

"function () {\n    [native code]\n}"

Se o método toString() é chamado por uma função criada pelo contrutor de FunctiontoString() retorna o código fonte de uma declaração de função sintetizada chamada "anonymous" usando os parâmetros passados e o corpo da função.

Exemplos

Função Function.prototype.toString resultado
function f(){}
"function f(){}"
class A { a(){} }
"class A { a(){} }"
function* g(){}
"function* g(){}"
a => a
"a => a"
({ a(){} }.a)
"a(){}"
({ *a(){} }.a)
"*a(){}"
({ [0](){} }[0])
"[0](){}"
Object.getOwnPropertyDescriptor({
    get a(){}
}, "a").get
"get a(){}"
Object.getOwnPropertyDescriptor({
    set a(x){}
}, "a").set
"set a(x){}"
Function.prototype.toString
"function toString() { [native code] }"
(function f(){}.bind(0))
"function () { [native code] }"
Function("a", "b")
"function anonymous(a\n) {\nb\n}"

Especificações

Especificação Status Comentário
ECMAScript 1st Edition (ECMA-262) Padrão

Definição inicial. Implementado no JavaScript 1.1.

ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Function.prototype.toString' in that specification.
Padrão

Mais requisitos específicos foram incluídos para representação de string.

Function.prototype.toString revisions proposal Rascunho

Padroniza a função de string navida e fins de linha.

ECMAScript Latest Draft (ECMA-262)
The definition of 'Function.prototype.toString' in that specification.
Rascunho  

Compatibilidade de navegador

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support 5Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
Support of toString revisionChrome No support NoEdge No support NoFirefox Full support 54IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android Full support 54Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

Full support  
Full support
No support  
No support

Firefox-specific notes

  • Desde o Firefox 17 a função Function.prototype.toString() tem sido implementada salvando o fonte da função. O descompilador foi removido o que torna o parâmetro indentation desnecessário. Veja bug 761723 para mais detalhes.
  • Do Firefox 38 para o 63 a função Function.prototype.toString() lançava exceções para objetos Proxy (bug 1100936 e bug 1440468).

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: mdnwebdocs-bot, Romulofelipe
Última atualização por: mdnwebdocs-bot,