diff options
Diffstat (limited to 'files/pt-br/web/javascript/reference/global_objects/object/tosource/index.html')
| -rw-r--r-- | files/pt-br/web/javascript/reference/global_objects/object/tosource/index.html | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/files/pt-br/web/javascript/reference/global_objects/object/tosource/index.html b/files/pt-br/web/javascript/reference/global_objects/object/tosource/index.html new file mode 100644 index 0000000000..e0a8edcaa5 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/object/tosource/index.html @@ -0,0 +1,136 @@ +--- +title: Object.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Object/toSource +tags: + - JavaScript + - Method + - Non-standard + - Não padronizado + - Object + - Objeto + - Obsoleto + - Prototipo + - Prototype + - metodo +translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource +--- +<div>{{JSRef}} {{obsolete_header}}</div> + +<p>O método <strong><code>toSource()</code></strong> retorna uma cadeia de caracteres (<em>string</em>) representando o código fonte do objeto.</p> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate"><code>Object.toSource(); +<var>obj</var>.toSource(); +</code></pre> + +<h3 id="Valor_de_retorno">Valor de retorno</h3> + +<p>Uma <em>string</em> representando o código fonte do objeto.</p> + +<h2 id="Descrição">Descrição</h2> + +<p>O método <code>toSource()</code> retorna os seguintes valores:</p> + +<ul> + <li>Para o objeto embutido {{jsxref("Object")}}, <code>toSource()</code> retorna a seguinte <em>string</em> indicando que o código fonte não está disponível: + + <pre class="brush: js notranslate">function Object() { + [native code] +} +</pre> + </li> + <li>Para instâncias de {{jsxref("Object")}}, <code>toSource()</code> returna a <em>string</em> representando o código fonte.</li> +</ul> + +<p>Você pode chamar <code>toSource()</code> enquanto debuga para examinar os conteúdos de um objeto.</p> + +<h3 id="Sobrescrevendo_o_método_toSource">Sobrescrevendo o método <code>toSource()</code></h3> + +<p>É seguro para objetos sobrescreverem o método <code>toSource()</code>. Por exemplo:</p> + +<pre class="brush: js notranslate">function Person(name) { + this.name = name; +} + +Person.prototype.toSource = function Person_toSource() { + return 'new Person(' + uneval(this.name) + ')'; +}; + +console.log(new Person('Joe').toSource()); // ---> new Person("Joe") +</pre> + +<h3 id="Métodos_toSource_embutidos">Métodos <code>toSource()</code> embutidos</h3> + +<p>Cada tipo principal do JavaScript tem seu próprio método <code>toSource()</code>. Esses objetos são:</p> + +<ul> + <li>{{jsxref("Array.prototype.toSource()")}} — objeto {{jsxref("Array")}}.</li> + <li>{{jsxref("Boolean.prototype.toSource()")}} — objeto {{jsxref("Boolean")}}.</li> + <li>{{jsxref("Date.prototype.toSource()")}} — objeto {{jsxref("Date")}}.</li> + <li>{{jsxref("Function.prototype.toSource()")}} — objeto {{jsxref("Function")}}.</li> + <li>{{jsxref("Number.prototype.toSource()")}} — objeto {{jsxref("Number")}}.</li> + <li>{{jsxref("RegExp.prototype.toSource()")}} — objeto {{jsxref("RegExp")}}.</li> + <li>{{jsxref("String.prototype.toSource()")}} — objeto {{jsxref("String")}}.</li> + <li>{{jsxref("Symbol.prototype.toSource()")}} — objeto {{jsxref("Symbol")}}.</li> + <li><code>Math.toSource()</code> — Retorna a <em>string</em> "Math".</li> +</ul> + +<h3 id="Limitações_em_objetos_cíclicos">Limitações em objetos cíclicos</h3> + +<p>Em case de objetos que contém referências para eles mesmos, e.g. uma lista ligada cíclica ou uma árvore que pode ser percorrida pelos dois sentidos, <code>toSource()</code> não irá recriar a auto-referência, como no Firefox 24. Por exemplo:</p> + +<pre class="brush: js notranslate">var obj1 = {}; +var obj2 = { a: obj1 }; +obj1.b = obj2; + +console.log('Cyclical: ' + (obj1.b.a == obj1)); + +var objSource = obj1.toSource(); // retorna "({b:{a:{}}})" + +obj1 = eval(objSource); + +console.log('Cyclical: ' + (obj1.b.a == obj1)); +</pre> + +<p>Se uma estrutura cíclica é empregada e <code>toSource()</code> é necessário, o objeto deve prover uma sobrescrita para <code>toSource()</code>, ou usando a referência para um construtor ou provendo uma função anônima.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Usando_toSource">Usando <code>toSource()</code></h3> + +<p>O seguinte código define o tipo do objeto <code>Dog</code> e cria <code>theDog</code>, um objeto do tipo <code>Dog</code>:</p> + +<pre class="brush: js notranslate">function Dog(name, breed, color, sex) { + this.name = name; + this.breed = breed; + this.color = color; + this.sex = sex; +} + +theDog = new Dog('Gabby', 'Lab', 'chocolate', 'female'); +</pre> + +<p>Chamando o método <code>toSource()</code> de <code>theDog</code> mostra o código fonte JavaScript que define o objeto:</p> + +<pre class="brush: js notranslate">theDog.toSource(); +// returns ({name:"Gabby", breed:"Lab", color:"chocolate", sex:"female"}) +</pre> + +<h2 id="Especificações">Especificações</h2> + +<p>Não faz parte de nenhum padrão.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<div> +<div class="hidden">A tabela de compatibilidade nessa página é gerada de dados estruturados. Se você quiser contribuir a esses dados, por favor cheque <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data </a>e nos mande um pull request.</div> + +<p>{{Compat("javascript.builtins.Object.toSource")}}</p> +</div> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{jsxref("Object.prototype.toString()")}}</li> +</ul> |
