--- 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 ---
{{JSRef("Global_Objects", "Object")}} {{non-standard_header}}

Метод toSource() возвращает строку, представляющую исходный код объекта.

Синтаксис

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

Параметры

Нет.

Описание

Метод 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(). Вот эти объекты:

Ограничение на циклические объекты

В том случае, если объекты содержат ссылки на самих себя, например циклический связанный список или дерево, которое можно обходить в обоих направлениях, метод 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")}}

 

 
 

Смотрите также