Строковое преобразование
Строковое преобразование проще всего увидеть, если вывести объект при помощиalert
:
var user = {
firstName: 'Василий'
};
alert( user ); // [object Object]
Как видно, содержимое объекта не вывелось. Это потому, что стандартным строковым представлением пользовательского объекта является строка"[object Object]"
.
Такой вывод объекта не содержит интересной информации. Поэтому имеет смысл его поменять на что-то более полезное.
Если в объекте присутствует методtoString
, который возвращает примитив, то он используется для преобразования.
var user = {
firstName: 'Василий',
toString: function() {
return 'Пользователь ' + this.firstName;
}
};
alert( user ); // Пользователь Василий
Результатом toString
может быть любой примитив. МетодtoString
не обязан возвращать именно строку.
Все объекты, включая встроенные, имеют свои реализации метода toString
, например:
alert( [1, 2] ); // toString для массивов выводит список элементов "1,2"
alert( new Date ); // toString для дат выводит дату в виде строки
alert( function() {} ); // toString для функции выводит её код