Справочник javascript: toString

Описание, примеры

Каждый объект обладает методом toString, который вызывается автоматически каждый раз, когда требуется строковое представление объекта.

Например, это произойдет в вызовах:

// alert требует строку,
// поэтому произойдет неявный вызов obj.toString
alert(obj) 

// операция объединения строк сделает строку из obj
var 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=name
   this.color=color
}

theDog = new Dog("Барбос","черный");

Если вызвать метод toString сейчас, то он вернет [object Object].

Для изменения этого поведения добавим в прототип свой метод toString:

Пример: После перекрытия метода toString

Dog.prototype.toString = function() {
  return "Собака " + this.name + ", цвет:" + this.color
}

theDog = new Dog("Барбос","черный");

alert(theDog) // => "Собака Барбос, цвет: черный"

Каждый раз, когда объект theDog будет использован в качестве строки, яваскрипт автоматически вызовет метод toString, который вернет "Собака Барбос, цвет: черный".