--- title: Object.prototype.toSource() slug: Web/JavaScript/Reference/Global_Objects/Object/toSource tags: - JavaScript - Méthode - Non-standard - Object - Prototype - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource original_slug: Web/JavaScript/Reference/Objets_globaux/Object/toSource ---
La méthode toSource()
renvoie une chaîne de caractères représentant le code source d'un objet.
Object.toSource(); obj.toSource();
Une chaîne de caractères qui représente le code source de l'objet.
La méthode toSource()
renvoie les valeurs suivantes :
toSource()
renvoie la chaîne suivante, qui indique que le code source n'est pas disponible :
function Object() { [native code] }
toSource()
renvoie une chaîne représentant le code source.La méthode toSource()
peut être utilisée à des fins de débogage pour analyser le contenu d'un objet.
toSource()
La méthode toSource()
peut être surchargée pour les différents objets. Par exemple :
function Personne(nom) { this.nom = nom; } Personne.prototype.toSource = function Personne_toSource() { return 'new Personne(' + uneval(this.nom) + ')'; }; console.log(new Personne('Jean').toSource()); // ---> new Personne("Jean")
toSource()
nativesChaque constructeur natif JavaScript possède sa propre méthode toSource()
. Ces objets sont :
Math.toSource()
— Renvoie "Math".Dans le cas d'objets qui font référence à eux-mêmes (une liste cyclique ou un arbre), toSource()
ne représentera pas la référence (Firefox 24). Par exemple :
var obj1 = {}; var obj2 = { a: obj1 }; obj1.b = obj2; console.log('Cyclique : ' + (obj1.b.a == obj1)); var objSource = obj1.toSource(); // renvoie "({b:{a:{}}})" obj1 = eval(objSource); console.log('Cyclique : ' + (obj1.b.a == obj1));
Si on utilise une structure cyclique et qu'on a besoin de toSource()
, il faudra surcharger la méthode toSource()
pour avoir le comportement souhaité.
toSource()
Dans le code qui suit, on définit un objet Chien
et on crée monChien
qui est une instance de type Chien
:
function Chien(nom, race, couleur, sexe) { this.nom = nom; this.race = race; this.couleur = couleur; this.sexe = sexe; } monChien = new Chien('Gabby', 'Labrador', 'chocolat', 'femelle');
Si on appelle la méthode toSource()
sur monChien
, on obtiendra le littéral permettant de définir l'objet :
monChien.toSource(); // returns ({nom:"Gabby", race:"Labrador", couleur:"chocolat", sexe:"femelle"})
Cette méthode ne fait partie d'aucun standard, implémentée avec JavaScript 1.3.
{{Compat("javascript.builtins.Object.toSource")}}