Каждый объект обладает методом toString, который вызывается автоматически каждый раз, когда требуется строковое представление объекта.
Например, это произойдет в вызовах:
Выделить все
// alert требует строку,// поэтому произойдет неявный вызов obj.toStringalert(obj)// операция объединения строк сделает строку из objvar s = 'Объект в виде строки:'+obj
Объект Object предоставляет базовый метод toString, который обычно перекрывается наследующими от Object объектами.
По умолчанию, если этот метод не перекрыт объектом-наследником Object - он возвращает "[object <тип объекта>]".
Пример:
var o = new Object();
alert(o.toString())// [object Object]
Каждый основной объект яваскрипт обладает своим собственным методом toString, например:
var d = new Date()alert(d)// выведет d.toString()
Полезной практикой является перекрытие toString для новых типов объектов. Метод toString не получает аргументов и возвращает строку. Как правило, эта строка содержит основную информацию об объекте.
Пример: До перекрытия метода toString
Выделить все
function Dog(name,color){this.name=namethis.color=color
}
theDog = new Dog("Барбос","черный");
Если вызвать метод toString сейчас, то он вернет [object Object].
Для изменения этого поведения добавим в прототип свой метод toString:
Каждый раз, когда объект theDog будет использован в качестве строки, яваскрипт автоматически вызовет метод toString, который вернет "Собака Барбос, цвет: черный".
Это интересно
Основной причиной того, что главная страница Google имеет такой голый вид, является тот факт, что основатели Google… просто не знали языки разметки HTML, и хотели быстро сделать простой интерфейс. На самом деле они даже долгое время не могли сделать кнопку «Submit». Отправить поисковый запрос можно было только нажатием клавиши Enter на клавиатуре. Фактически, страница состояла из одной лишь поисковой строки.