diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-br/web/javascript/reference/global_objects/function/tostring | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/pt-br/web/javascript/reference/global_objects/function/tostring')
-rw-r--r-- | files/pt-br/web/javascript/reference/global_objects/function/tostring/index.html | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/files/pt-br/web/javascript/reference/global_objects/function/tostring/index.html b/files/pt-br/web/javascript/reference/global_objects/function/tostring/index.html new file mode 100644 index 0000000000..c4d6fbbfb6 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/function/tostring/index.html @@ -0,0 +1,239 @@ +--- +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 +--- +<div>{{JSRef}}</div> + +<p>O método <code><strong>toString()</strong></code> retorna uma string representando o código fonte da função.</p> + +<div>{{EmbedInteractiveExample("pages/js/function-tostring.html")}}</div> + +<p class="hidden">A fonte deste exemplo interativo está armazenado no repositório do GitHub. Se você gostaria de contrubuir para este exemplos de projeto interativo, por favor clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> e envie um pull request.</p> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate"><code><var>function</var>.toString()</code></pre> + +<h3 id="Valor_de_retorno">Valor de retorno</h3> + +<p>Uma string representando o código fonte da função.</p> + +<h2 id="Descrição">Descrição</h2> + +<p>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 <code>toString</code> retorna uma string contendo o seguimento de texto de origem que foi usado para definir a função</p> + +<p>O JavaScript chama o método <code>toString</code> automaticamente quando uma {{jsxref("Function")}} pode ser representada como um valor de texto. e.x. quando uma função é concatenada com uma string.</p> + +<p>O método <code>toString()</code> lançará uma exceção do tipo {{jsxref("TypeError")}} ("Function.prototype.toString called on incompatible object") se o valor <code>this</code> do objeto não é um objeto do tipo <code>Function.</code></p> + +<pre class="brush: js example-bad notranslate">Function.prototype.toString.call('foo'); // TypeError +</pre> + +<p>Se o método <code>toString()</code> é chamado por objetos de funções embutidas ou por uma função criada por <code>Function.prototype.bind</code>, <code>toString()</code> retorna uma string de uma função nativa que parece</p> + +<pre class="brush: js notranslate">"function () {\n [native code]\n}" +</pre> + +<p>Se o método <code>toString()</code> é chamado por uma função criada pelo contrutor de <code>Function</code>, <code>toString()</code> 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.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Função</th> + <th scope="col">Function.prototype.toString resultado</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <pre class="notranslate"> +function f(){}</pre> + </td> + <td> + <pre class="notranslate"> +"function f(){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +class A { a(){} }</pre> + </td> + <td> + <pre class="notranslate"> +"class A { a(){} }"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +function* g(){}</pre> + </td> + <td> + <pre class="notranslate"> +"function* g(){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +a => a</pre> + </td> + <td> + <pre class="notranslate"> +"a => a"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +({ a(){} }.a)</pre> + </td> + <td> + <pre class="notranslate"> +"a(){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +({ *a(){} }.a)</pre> + </td> + <td> + <pre class="notranslate"> +"*a(){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +({ [0](){} }[0])</pre> + </td> + <td> + <pre class="notranslate"> +"[0](){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +Object.getOwnPropertyDescriptor({ + get a(){} +}, "a").get</pre> + </td> + <td> + <pre class="notranslate"> +"get a(){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +Object.getOwnPropertyDescriptor({ + set a(x){} +}, "a").set</pre> + </td> + <td> + <pre class="notranslate"> +"set a(x){}"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +Function.prototype.toString</pre> + </td> + <td> + <pre class="notranslate"> +"function toString() { [native code] }"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +(function f(){}.bind(0))</pre> + </td> + <td> + <pre class="notranslate"> +"function () { [native code] }"</pre> + </td> + </tr> + <tr> + <td> + <pre class="notranslate"> +Function("a", "b")</pre> + </td> + <td> + <pre class="notranslate"> +"function anonymous(a\n) {\nb\n}"</pre> + </td> + </tr> + </tbody> +</table> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td> + <p>Definição inicial. Implementado no JavaScript 1.1.</p> + </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function.prototype.tostring', 'Function.prototype.toString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> + <p>Mais requisitos específicos foram incluídos para representação de string.</p> + </td> + </tr> + <tr> + <td><a href="https://tc39.github.io/Function-prototype-toString-revision/#sec-introduction"><code>Function.prototype.toString</code> revisions proposal</a></td> + <td>Rascunho</td> + <td> + <p>Padroniza a função de string navida e fins de linha.</p> + </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-function.prototype.tostring', 'Function.prototype.toString')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<div> + + +<p>{{Compat("javascript.builtins.Function.toString")}}</p> +</div> + +<h2 id="Notas_específicas_do_Firefox">Notas específicas do Firefox</h2> + +<ul> + <li>Desde o Firefox 17 a função <code>Function.prototype.toString()</code> tem sido implementada salvando o fonte da função. O descompilador foi removido o que torna o parâmetro <code>indentation</code> desnecessário. Veja {{bug("761723")}} para mais detalhes.</li> + <li>Do Firefox 38 para o 63 a função <code>Function.prototype.toString()</code> lançava exceções para objetos {{jsxref("Proxy")}} ({{bug(1100936)}} e {{bug(1440468)}}).</li> +</ul> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{jsxref("Object.prototype.toString()")}}</li> +</ul> |