Допустим, что мы хотим в процессе выполнения сценария добавить новое свойство
security (безопасность) классу объектов
Options (подчеркнем еще раз — классу объектов, а не отдельному его представителю
myOptions). Для этого используется свойство
prototype объекта
Function:
Options.prototype.security = null;
Теперь мы можем присвоить значение новому свойству объекта:
myBrowser.options.security = "Высокая";
Для удаления свойств объектов используется операция
delete, например:
delete Options.prototype.security;
JavaScript позволяет нам задать новый прототип для класса пользовательских объектов (прототипы встроенных объектов доступны только для чтения). Рассмотрим такой пример:
function Circle(radius) {
this.radius = radius;
}
Circle.prototype.area = function() {
return Math.PI * this.radius * this.radius;
}
function FullCircle(x, y, radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
FullCircle.prototype = Circle.prototype;
var myCircle = new FullCircle(0, 0, 1);
document.write(myCircle.area());
В этом примере сначала определяется класс объектов
Circle со свойством
radius и методом
area, возвращающим площадь круга. Затем определяется класс
FullCircle, конструктор которого дополнительно содержит координаты центра окружности.
Затем указывается, что он наследует прототип класс
Circle. После этого мы создаем объект
myCircle и вызываем его метод
area, который он унаследовал от прототипа класса
Circle.