Введение в JavaScript

       

Методы объекта Object


Object — это объект и, следовательно, у него могут быть методы. Таких методов мы рассмотрим три: toString(), valueOf() и assign().

Метод toString() осуществляет преобразование объекта в строку символов. Он используется в JavaScript-программах повсеместно, но неявно. Например, при выводе числа или строковых объектов. Интересно применение toString() к функциям:

document.write(prot.toString()+"<BR>");

Результат исполнения:

function prot() { a = this.src.split(':'); protocol = a[0]+":"; return protocol; }

Здесь мы используем функцию   prot() из примера с прототипом. Если распечатать таким же образом объект   Image, то получим следующее:

картинка:[object]

Таким образом, далеко не всегда метод toString() возвращает строковый эквивалент содержания объекта. Он может просто вернуть его тип. Internet Ехplorer при этом возвращает "Object", в то время как Netscape Navigator — "object Image".

Аналогично ведет себя и метод valueOf(). Этот метод позволяет получить значение объекта. В большинстве случаев он работает подобно методу toString(), особенно если нужно выводить значение на страницу:

document.write(prot.valueOf()+"<BR>");

Результат исполнения:

function prot() { a = this.src.split(':'); protocol = a[0]+":"; return protocol; }

Как видим, результат тот же, что и в методе toString().

В отличие от двух предыдущих методов, assign() позволяет не прочитать, а переназначить свойства и методы объекта. Данный метод используется в контексте присваивания объекту некоторого значения:

object = value; <=> object.assign(value);

Рассмотрим пример:

c = new Image(); c.src = "image1.gif"; b =new Image(); b.src = "image2.gif"; Image.prototype.assign = new Function("a","this.src = a.src;"); ... <A HREF='javascript:window.document.main. document.i2.assign(c); void(0);'>Покрасить картинку</A>

В данном примере мы применяем метод assign() не внутри JavaScript-кода, а в обычной HTML-разметке. При этом перед использованием метода мы переопределили его своей функцией. Пользователей Internet Explorer следует предупредить, что здесь мы их немножко обманываем, так как переназначить прототип Image в Internet Explorer мы в данном случае не можем.



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