From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../global_objects/object/tosource/index.html | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/global_objects/object/tosource/index.html (limited to 'files/pt-br/web/javascript/reference/global_objects/object/tosource') 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 +--- +
{{JSRef}} {{obsolete_header}}
+ +

O método toSource() retorna uma cadeia de caracteres (string) representando o código fonte do objeto.

+ +

Sintaxe

+ +
Object.toSource();
+obj.toSource();
+
+ +

Valor de retorno

+ +

Uma string representando o código fonte do objeto.

+ +

Descrição

+ +

O método toSource() retorna os seguintes valores:

+ + + +

Você pode chamar toSource() enquanto debuga para examinar os conteúdos de um objeto.

+ +

Sobrescrevendo o método toSource()

+ +

É seguro para objetos sobrescreverem o método toSource(). Por exemplo:

+ +
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")
+
+ +

Métodos toSource() embutidos

+ +

Cada tipo principal do JavaScript tem seu próprio método toSource(). Esses objetos são:

+ + + +

Limitações em objetos cíclicos

+ +

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, toSource() não irá recriar a auto-referência, como no Firefox 24. Por exemplo:

+ +
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));
+
+ +

Se uma estrutura cíclica é empregada e toSource() é necessário, o objeto deve prover uma sobrescrita para toSource(), ou usando a referência para um construtor ou provendo uma função anônima.

+ +

Exemplos

+ +

Usando toSource()

+ +

O seguinte código define o tipo do objeto Dog e cria theDog, um objeto do tipo Dog:

+ +
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');
+
+ +

Chamando o método toSource() de theDog mostra o código fonte JavaScript que define o objeto:

+ +
theDog.toSource();
+// returns ({name:"Gabby", breed:"Lab", color:"chocolate", sex:"female"})
+
+ +

Especificações

+ +

Não faz parte de nenhum padrão.

+ +

Compatibilidade de navegador

+ +
+ + +

{{Compat("javascript.builtins.Object.toSource")}}

+
+ +

Veja também

+ + -- cgit v1.2.3-54-g00ecf