Ядро JavaScript 1.5. Справочник



         

ToString


Возвращает строку, представляющую специфицированный объект.

Метод из

Реализован в

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>:

  • Если Вы специфицируете LANGUAGE="JavaScript1.2"

    в тэге <SCRIPT>, метод toString возвращает литерал объекта.

  • Если Вы не специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, метод toString возвращает[object type], как в других версиях JavaScript.


  • Примеры

    Пример 1:

    Объект location. Здесь печатается строковой эквивалент текущего location.

    document.write("location.toString() это " + location.toString() + "<BR>")

    На выходе будет:

    location.toString() это file:///C|/TEMP/myprog.htmll

    Пример 2:

    Объект без строкового значения. Предположим, у Вас есть объект 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

    См. также

    ,

    .




    Содержание  Назад  Вперед