--- title: Object.prototype.toSource() slug: Web/JavaScript/Referencia/Objetos_globales/Object/toSource translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource ---
El método toSource()
regresa una cadena representando el código fuente del objeto.
Object.toSource();
obj.toSource();
Una cadena representando el código fuente del objeto.
EL método toSource()
regresa los siguientes valores:
toSource()
regresa la siguiente cadena indicando que el código fuente no está disponible:
function Object() { [native code] }
toSource()
regresa una cadena representando el código fuente.Puedes llamar el método toSource()
durante el depurado para examinar el contenido de un objeto.
Sobreescribir el método toSource()
Es seguro para los objetos sobreescribir el método toSource(). Por ejemplo:
function Person(name) { this.name = name; } Person.prototype.toSource = function Person_toSource() { return 'new Person(' + uneval(this.name) + ')'; }; console.log(new Person('Joe').toSource()); // ---> nueva Person("Joe")
toSource()
incorporadosCada tipo fundamental de JavaScript tiene su propio método toSource()
. Éstos objetos son:
Math.toSource()
— Regrsa la cadena "Math".EN el caso de los objetos que contienen referencia a ellos mismos, por ejemplo, una lista enlazada cíclicamente o un árbol que puede ser atravesado en ambas formas, toSource()
no recreará la referencia a sí mismo, a partir de Firefox 24. Por ejemplo:
var obj1 = {}; var obj2 = { a: obj1 }; obj1.b = obj2; console.log('Ciclico: ' + (obj1.b.a == obj1)); var objSource = obj1.toSource(); // regresa "({b:{a:{}}})" obj1 = eval(objSource); console.log('Ciclico: ' + (obj1.b.a == obj1));
Si una estructura cíclica es usada y se necesita el método toSource()
, el objeto debe proveer la sobreescritura de toSource()
, ya sea usando una referencia a un constructor o proveyendo una función anónima.
toSource()
El código siguiente define el objeto tipo Dog
y crea a theDog
, un objeto 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');
Llamando al método toSource() de
theDog
muestra el código JavaScript que define al objeto:
theDog.toSource(); // returns ({name:"Gabby", breed:"Lab", color:"chocolate", sex:"female"})
No es parte de ningún estándar. Implementado en JavaScript 1.3.
{{Compat("javascript.builtins.Object.toSource")}}