Работа с объектами
Оглавление Работа с объектами Страница 2 Страница 2 из 2
Как создаются новые свойства и методы объекта-потомка, мы уже знаем. Кроме
этого, мы можем переопределить значения унаследованных свойств и изменить
унаследованные методы. Как изменить значение унаследованного свойства, понятно;
для изменения же унаследованного метода достаточно присвоить ему другую
функцию.
А теперь рассмотрим самое последнее выражение:
<Имя объекта-потомка>.prototype = new <Объект-предок>;
Оно требует особого внимания, т. к. дает понять интерпретатору JavaScript,
что мы собираемся создать новый объект на основе существующего. Оно создает
экземпляр объекта-предка и присваивает его особому свойству prototype
объекта-потомка. Именно после этого объект-потомок унаследует все свойства и
методы предка.
Пример
Давайте расширим созданный ранее объект Point. Во-первых, мы добавим к нему
свойство color, хранящее цвет точки. Во-вторых, мы изменим метод setcoords —
пусть при установке координат точки он присваивает свойству color значение 0
(черный цвет). Назовем новый объект Point2.
// Объявление функции-конструктора объекта Point2 function Point2(ix, iy,
icolor) {
this.base = Point; this.base(ix, iy) ; this.color = icolor; this.setCoords =
fSetCoords2; } // Выражение, делающее объект Point предком объекта Point2
Point2.prototype = new Point;
// Объявление функции, реализующей метод setCoords объекта Point2 function
fSetCoords2(ix, iy) {
this.x = ix; this.у = iy; this.color = 0; }
Теперь созданный объект можно использовать:
var p = new Point2(50, 50, 256); p.setCoords(100, 200); var px = p.x; delete
p;
« Пред. - След.
|