Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

No estándar
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

El método toSource() regresa una cadena representando el código fuente del objeto.

Syntax

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

Return value

Una cadena representando el código fuente del objeto.

Description

EL método toSource() regresa los siguientes valores:

  • Para el objeto incorporado Object, toSource() regresa la siguiente cadena indicando que el código fuente no está disponible:
    function Object() {
        [native code]
    }
    
  • Para instancias de Object, 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")

Métodos de toSource() incorporados

Cada tipo fundamental de JavaScript tiene su propio método toSource().  Éstos objetos son:

Limitaciones en objetos cíclicos

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.

Ejemplos

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

Especificaciones

No es parte de ningún estándar. Implementado en JavaScript 1.3.

Compatibilidad en navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básico
DeprecatedNo estándar
Chrome Sin soporte NoEdge Sin soporte NoFirefox Soporte completo 1IE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoEdge Mobile Sin soporte NoFirefox Android Soporte completo 4Opera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte Nonodejs Sin soporte No

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
No estandar . Esperar poco soporte entre navegadores.
No estandar . Esperar poco soporte entre navegadores.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: taniaReyesM
Última actualización por: taniaReyesM,