--- title: Object.prototype.toString() slug: Web/JavaScript/Reference/Global_Objects/Object/toString tags: - JavaScript - Об'єкт - метод - прототип translation_of: Web/JavaScript/Reference/Global_Objects/Object/toString ---
{{JSRef}}
Метод toString() повертає рядок, який відображає об'єкт.
{{EmbedInteractiveExample("pages/js/object-prototype-tostring.html")}}

Синтаксис

obj.toString()

Повертає

Рядок, який відображає об'єкт.

Опис

Кожен об'єкт має метод toString(), який автоматично викликається, коли об'єкт повинен бути відображений як рядок, або коли об'єкт знаходиться у виразі, де очікується рядок. За замовчуванням, метод  toString() успадковується усіма об'єктами, похідними від Object. Якщо цей метод не був перезаписаний у користувацькому об'єкті, то toString() поверне "[object type]", де type - це тип об'єкта. Наступний код це демонструє:

var o = new Object();
o.toString(); // повертає [object Object]

Примітка: Починаючи з JavaScript 1.8.5, toString(), викликаний для {{jsxref("null")}}, повертає [object Null], для {{jsxref("undefined")}} повертає [object Undefined], як визначенно у 5-й версії ECMAScript і згодом у Ерраті. Дивіться {{anch("Використання_toString_для_визначення_класу_обєкта", "Використання toString() для визначення класу об'єкта")}}.

Приклади

Перезапис стандартного методу toString

Ви можете створити функцію, яка викликатиметься замість стандартного методу toString(). Метод toString() не приймає жодних аргументів і має повернути рядок. Метод toString(), який ви створите, може повертати будь-яке значення, але найбільш корисним буде, якщо він повертатиме інформацію про об'єкт.

Наступний код визначає тип об'єкта Dog і створює theDog, об'єкт типу Dog:

function Dog(name, breed, color, sex) {
  this.name = name;
  this.breed = breed;
  this.color = color;
  this.sex = sex;
}

theDog = new Dog('Галя', 'лабрадор', 'шоколадна', 'самиця');

Якщо ви викличете метод toString() для цього користувацького об'єкта, він поверне стандартне значення, успадковане від {{jsxref("Object")}}:

theDog.toString(); // повертає [object Object]

Наступний код створює і присвоює значення dogToString(), щоб перезаписати  стандартний метод toString(). Ця функція генерує рядок, що складається з імені, породи, кольору і статі об'єкта, у вигляді "властивість = значення;".

Dog.prototype.toString = function dogToString() {
  var ret = 'Собака ' + this.name + ' - ' + this.color + ' ' + this.sex + ' ' + this.breed;
  return ret;
}

або

Dog.prototype.toString = function dogToString() {
  return `Собака ${this.name} - ${this.color} ${this.sex} ${this.breed}`;
}

Завдяки цьому коду, як тільки theDog буде використаний у контексті рядка, JavaScript автоматично викличе новий метод toString(), який поверне наступний рядок:

"Собака Галя - шоколадна самиця лабрадор"

Використання toString() для визначення класу об'єкта

Метод toString() може бути використаний з будь-яким об'єктом, щоб отримати його клас. Щоб використати Object.prototype.toString() для будь-якого об'єкта, необхідно викликати {{jsxref("Function.prototype.call()")}} або {{jsxref("Function.prototype.apply()")}}, передаючи об'єкт, який ви хочете дослідити, першим параметром (thisArg).

var toString = Object.prototype.toString;

toString.call(new Date);    // [object Date]
toString.call(new String);  // [object String]
toString.call(Math);        // [object Math]

// Починаючи з JavaScript 1.8.5
toString.call(undefined);   // [object Undefined]
toString.call(null);        // [object Null]

Специфікації

Специфікація Статус Коментар
{{SpecName('ESDraft', '#sec-object.prototype.tostring', 'Object.prototype.toString')}} {{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-object.prototype.tostring', 'Object.prototype.toString')}} {{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-15.2.4.2', 'Object.prototype.toString')}} {{Spec2('ES5.1')}} Виклик на {{jsxref("null")}} повертає [object Null], а {{jsxref("undefined")}} повертає [object Undefined]
{{SpecName('ES1')}} {{Spec2('ES1')}} Початкове визначення. Реалізоване у JavaScript 1.0.

Сумісність з веб-переглядачами

{{Compat("javascript.builtins.Object.toString")}}

Дивіться також