--- 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 ---
O método toSource() retorna uma cadeia de caracteres (string) representando o código fonte do objeto.
Object.toSource();
obj.toSource();
Uma string representando o código fonte do objeto.
O método toSource() retorna os seguintes valores:
toSource() retorna a seguinte string indicando que o código fonte não está disponível:
function Object() {
[native code]
}
toSource() retorna a string representando o código fonte.Você pode chamar toSource() enquanto debuga para examinar os conteúdos de um objeto.
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")
toSource() embutidosCada tipo principal do JavaScript tem seu próprio método toSource(). Esses objetos são:
Math.toSource() — Retorna a string "Math".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.
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"})
Não faz parte de nenhum padrão.
{{Compat("javascript.builtins.Object.toSource")}}