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