Object.prototype.toString()

Метод toString() возвращает строку, представляющую объект.

Синтаксис

obj.toString()

Возвращаемое значение

Строка, представляющая объект.

Описание

Каждый объект имеет метод toString(), автоматически вызывающийся, когда объект должен быть представлен в виде текстового значения или когда объект участвует в выражении, где ожидается строка. По умолчанию, метод toString() наследуется каждым объектом, произошедшим от объекта Object. Если этот метод не переопределён в пользовательском объекте, toString() возвращает строку вида "[object тип]", где тип — это тип объекта. Это иллюстрирует следующий код:

var o = new Object();
o.toString();           // вернёт [object Object]

Примечание: начиная с JavaScript 1.8.5, метод toString(), вызванный на null, возвращает строку [object Null], а вызванный для undefined, возвращает строку [object Undefined], как определено в 5-м издании ECMAScript и последующих исправлениях. Смотрите пример использование метода 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() на этом пользовательском объекте, он вернёт значение по умолчанию, унаследованное от Object:

theDog.toString(); // вернёт [object Object]

Следующий код создаёт и присваивает метод dogToString(), переопределяющий метод toString() по умолчанию. Эта функция генерирует строку, содержащую кличку, породу, цвет и пол объекта, в форме "свойство = значение;".

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

или

Dog.prototype.toString = function dogToString() {
  return `Dog ${this.name} is a ${this.sex} ${this.color} ${this.breed}`;
}

После объявления этого метода, при любом использовании переменной theDog в строковом контексте, JavaScript будет автоматически вызывать функцию dogToString(), возвращающую следующую строку:

Собачка Болтушка - девочка, шоколадный лабрадор

Пример: использование метода toString для определения типа объекта

Метод toString() можно использовать с любым объектом для получения его класса. Для использования метода Object.prototype.toString() с любым объектом, вам необходимо вызвать на нём функции Function.prototype.call() или 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]

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

Спецификация Статус Комментарии
ECMAScript (ECMA-262)
Определение 'Object.prototype.toString' в этой спецификации.
Живой стандарт
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Object.prototype.toString' в этой спецификации.
Стандарт
ECMAScript 5.1 (ECMA-262)
Определение 'Object.prototype.toString' в этой спецификации.
Стандарт Вызов метода на null вернёт [object Null], а на undefined — [object Undefined]
ECMAScript 1st Edition (ECMA-262) Стандарт Изначальное определение. Реализована в JavaScript 1.0.

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
toString()Chrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

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