HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Метод toString() возвращает строку, представляющую объект.
toString()
function Dog(name) { this.name = name; } const dog1 = new Dog("Gabby"); Dog.prototype.toString = function dogToString() { return `${this.name}`; }; console.log(dog1.toString()); // Expected output: "Gabby"
obj.toString()
Строка, представляющая объект.
Каждый объект имеет метод toString(), автоматически вызывающийся, когда объект должен быть представлен в виде текстового значения или когда объект участвует в выражении, где ожидается строка. По умолчанию, метод toString() наследуется каждым объектом, произошедшим от объекта Object. Если этот метод не переопределён в пользовательском объекте, toString() возвращает строку вида "[object тип]", где тип — это тип объекта. Это иллюстрирует следующий код:
Object
тип
var o = new Object(); o.toString(); // вернёт [object Object]
Примечание: Начиная с JavaScript 1.8.5, метод toString(), вызванный на null, возвращает строку [object Null], а вызванный для undefined, возвращает строку [object Undefined], как определено в 5-м издании ECMAScript и последующих исправлениях. Смотрите пример использование метода toString() для определения типа объекта.
null
[object Null]
undefined
[object Undefined]
toString
Вы можете создать функцию, которая будет вызываться вместо метода toString() по умолчанию. Метод toString() не принимает аргументов и должен возвращать строку. Создаваемый вами метод toString() может возвращать любую строку, какую вы захотите, но он будет наиболее полезным, если будет возвращать информацию об объекте.
Следующий код определяет объект Dog и создаёт theDog, объект типа Dog:
Dog
theDog
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() по умолчанию. Эта функция генерирует строку, содержащую кличку, породу, цвет и пол объекта, в форме "свойство = значение;".
dogToString()
свойство = значение;
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() можно использовать с любым объектом для получения его класса. Для использования метода Object.prototype.toString() с любым объектом, вам необходимо вызвать на нём функции Function.prototype.call() или Function.prototype.apply(), передав объект, который вы хотите исследовать, первым параметром thisArg.
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]
Enable JavaScript to view this browser compatibility table.
Object.prototype.toSource()
Object.prototype.valueOf()
Number.prototype.toString()
Symbol.toPrimitive