Возвращает строку, представляющую специфицированный объект.
Метод из
Реализован в
JavaScript 1.0
Версия ECMA
ECMA-262
toString()
Каждый объект имеет метод toString, который автоматически вызывается, если объект представляется как текстовое значение или если на объект имеется ссылка в конкатенации строк. Например, следующие примеры требуют, чтобы theDog был представлен как строка:
document.write(theDog)
document.write("The dog is " + theDog)
По умолчанию метод toString наследуется каждым объектом - потомком от Object. Вы можете переопределять этот метод для специальных/custom объектов, создаваемых Вами. Если Вы не переопределяете toStringв специальном объекте, toString
возвращает [object type], где type это тип объекта или имя функции constructor, создавшей этот объект.
Например:
var o = new Object()
o.toString // возвращает [object Object]
Встроенные методы toString.
Каждый встроенный объект ядра JavaScript переопределяет метод toString
из Object для возвращения соответствующего значения. JavaScript вызывает этот метод по мере необходимости для конвертации объекта в строку.
Переопределение метода 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, он возвращает значение по умолчанию, унаследованное из 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()
JavaScript 1.2.
Поведение метода toString
зависит от того, специфицируете ли Вы LANGUAGE="JavaScript1.2" в тэге <SCRIPT>:
в тэге <SCRIPT>, метод toString возвращает литерал объекта.
Пример 1:
Объект location. Здесь печатается строковой эквивалент текущего location.
document.write("location.toString() это " + location.toString() + "<BR>")
На выходе будет:
location.toString() это file:///C|/TEMP/myprog.htmll
Объект без строкового значения. Предположим, у Вас есть объект Image
с именем sealife, определённый так:
<IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">
Поскольку сам объект Image
не имеет специального метода toString, sealife.toString() возвращает:
[object Image]
Пример 3:
Параметр radix. Этот код печатает строковые эквиваленты чисел от 0 до 9 в десятичном и двоичном виде.
for (x = 0; x < 10; x++) {
document.write("Decimal: ", x.toString(10), " Binary: ",
x.toString(2), "<BR>")
}
На выходе будет:
Decimal: 0 Binary: 0
Decimal: 1 Binary: 1
Decimal: 2 Binary: 10
Decimal: 3 Binary: 11
Decimal: 4 Binary: 100
Decimal: 5 Binary: 101
Decimal: 6 Binary: 110
Decimal: 7 Binary: 111
Decimal: 8 Binary: 1000
Decimal: 9 Binary: 1001
,
.