aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/javascript/reference/global_objects/function/tostring
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-br/web/javascript/reference/global_objects/function/tostring
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-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.html239
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 =&gt; a</pre>
+ </td>
+ <td>
+ <pre class="notranslate">
+"a =&gt; 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>