Клиентский JavaScript. Справочник

         

Описание


Каждый объект имеет метод toString, который автоматически вызывается, если объект представляется как текстовое значение или если на объект ссылаются при конкатенации строк. Например, следующие примеры требуют, чтобы theDog был представлен как строка:

document.write(theDog)
document.write("The dog is " + theDog)

По умолчанию метод toString наследуется каждым объектом - потомком объекта Object. Вы можете переопределить этот метод для создаваемых Вами специальных объектов. Если Вы не переопределяете toString в специальном объекте, toString возвращает [object type], где type это тип объекта или имя функции-конструктора, которая создаёт объект.

Например:

var o = new Object()
o.toString // возвращает [object Object]

Встроенные методы toString. Каждый встроенный объект ядра JavaScript переопределяет метод toString объекта Object для возвращения соответствующего значения. JavaScript вызывает этот метод везде, где необходимо конвертировать объект в строку.

Некоторые встроенные объекты серверного и клиентского JavaScript не переопределяют метод toString объекта Object. Например, для Image-объекта sealife, определённого ниже, sealife.toString() возвратит [object Image].

<IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">

Переопределения метод 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("Gabby","Lab","chocolate","girl")

Если Вы вызываете метод toString в этом специальном объекте, он возвращает значение по умолчанию, унаследованное от Object:

theDog.toString() //возвращает [object Object]

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

function dogToString() {
   var ret = "Dog " + this.name + " is [\n"
   for (var prop in this)
      ret += " " + prop + " is " + this[prop] + ";\n"
   return ret + "]"
}

Следующий код присваивает определённую пользователем функцию методу toString объекта:

Dog.prototype.toString = dogToString

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

Dog Gabby is [
  name is Gabby;
  breed is Lab;
  color is chocolate;
  sex is girl;
]

Метод toString объекта обычно вызывается JavaScript, но Вы можете и сами вызвать его:

var dogString = theDog.toString()



Содержание раздела