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