--- title: Object.prototype.toSource() slug: Web/JavaScript/Reference/Global_Objects/Object/toSource tags: - JavaScript - Method - Non-standard - Object - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource ---
Метод toSource()
возвращает строку, представляющую исходный код объекта.
Object.toSource();
obj.toSource();
Нет.
Метод toSource()
возвращает следующие значения:
toSource()
возвращает следующую строку, указывающую, что исходный код не доступен:
function Object() { [native code] }
toSource()
возвращает строку, представляющую исходный код.Вы можете вызывать метод toSource()
во время отладки для просмотра содержимого объекта.
toSource()
Вы можете безопасно переопределять метод toSource()
для объектов. Например:
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()
Каждый тип ядра JavaScript имеет свой собственный метод toSource()
. Вот эти объекты:
Math.toSource()
— возвращает строку "Math".В том случае, если объекты содержат ссылки на самих себя, например циклический связанный список или дерево, которое можно обходить в обоих направлениях, метод toSource()
не создаёт такие ссылки, начиная с Firefox 24. Например:
var obj1 = {}; var obj2 = { a: obj1 }; obj1.b = obj2; console.log('Циклическая ссылка: ' + (obj1.b.a == obj1)); var objSource = obj1.toSource(); // вернёт "({b:{a:{}}})" obj1 = eval(objSource); console.log('Циклическая ссылка: ' + (obj1.b.a == obj1));
Если же вам позарез нужно использовать метод toSource()
для циклической структуры, объект должен предоставить переопределённый метод toSource()
, либо с помощью ссылки на конструктор, либо предоставив анонимную функцию.
toSource()
Следующий код определяет тип объекта Dog
и создаёт объект theDog
типа Dog
:
function Dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; } theDog = new Dog('Болтушка', 'лабрадор', 'шоколадный', 'девочка');
Вызов метода toSource()
на объекте theDog
отобразит исходный код JavaScript, который определяет объект:
theDog.toSource(); // вернёт ({name:"Болтушка", breed:"лабрадор", color:"шоколадный", sex:"девочка"})
Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.
{{Compat("javascript.builtins.Object.toSource")}}