--- title: Function.prototype.toString() slug: Web/JavaScript/Reference/Global_Objects/Function/toString tags: - Função - JavaScript - Prototipo - metodo translation_of: Web/JavaScript/Reference/Global_Objects/Function/toString ---
{{JSRef}}

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

{{EmbedInteractiveExample("pages/js/function-tostring.html")}}

Sintaxe

function.toString()

Valor de retorno

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

Descrição

O objeto da {{jsxref("Function")}} substitui o método {{jsxref("Object.prototype.toString", "toString")}} herdado de {{jsxref("Object")}}; ele não herda {{jsxref("Object.prototype.toString")}}. Para objetos {{jsxref("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 {{jsxref("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 {{jsxref("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
{{SpecName('ES1')}} {{Spec2('ES1')}}

Definição inicial. Implementado no JavaScript 1.1.

{{SpecName('ES6', '#sec-function.prototype.tostring', 'Function.prototype.toString')}} {{Spec2('ES6')}}

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.

{{SpecName('ESDraft', '#sec-function.prototype.tostring', 'Function.prototype.toString')}} {{Spec2('ESDraft')}}

Compatibilidade de navegador

{{Compat("javascript.builtins.Function.toString")}}

Notas específicas do Firefox

Veja também