Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык программирования javascript 16.02.12.doc
Скачиваний:
7
Добавлен:
31.08.2019
Размер:
2.86 Mб
Скачать

Создание объектов с помощью инициализатора

Этот способ позволяет одновременно создать объект и присвоить значения всем или части его свойств. Он применяется в тех случаях, когда мы создаем объект с уникальным набором свойств. Инициализатор объекта имеет вид:

{свойство:значение [,свойство:значение]}

Здесь свойство — идентификатор, задающий имя свойства, а значение — выражение, задающее значение этого свойства.

Например, объект myBrowser из предыдущего примера может быть создан так:

var myBrowser = {name: "Microsoft Internet Explorer", version: "5.5"};

Усложним этот пример, добавив еще одно свойство объекта myBrowser, которое называется options (опции обозревателя) и само является объектом:

var myBrowser = {name: "Microsoft Internet Explorer", version: "5.5",

options: {enableJava: true, enableCookies: false}};

Создание объектов с помощью конструктора

Этот способ применяется в тех случаях, когда мы хотим создать класс объектов с определенным набором свойств, а затем создавать новые объекты, просто указывая, к какому классу они должны принадлежать. Для этого нужно сначала создать конструктор объектов, который является функцией специального вида, а именно:

  • имя функции задает имя создаваемого класса объектов;

  • тело функции должно содержать присваивание начальных значений свойствам и методам создаваемого объекта.

Например, конструктор для класса объектов Browser из предыдущего примера может иметь следующий вид:

function Browser(name, version) {

this.name = name;

this.version = version;

}

Обратите внимание на использование операции this для доступа к свойствам объекта. Теперь для создания новых объектов класса Browser достаточно вызвать этот конструктор в операции new, например:

var myBrowser = new Browser("Microsoft Internet Explorer", "5.5");

Вспомним теперь, что выше мы добавили свойство options объекта Browser, которое само является объектом. Перепишем приведенный пример с учетом этого свойства:

function Options(enableJava, enableCookies) {

this.enableJava = enableJava;

this.enableCookies = enableCookies;

}

function Browser(name, version) {

this.name = name;

this.version = version;

this.options = options;

}

var myOptions = new Options(true, false);

var myBrowser = new Browser("Microsoft Internet Explorer", "5.5", myOptions);

Для доступа к свойствам свойства options используется нотация

myBrowser.options.enableJava.

Создание методов

Поскольку методы являются разновидностью свойств, они создаются так же, как описано выше. Например, мы можем добавить к конструктору объектов Browser метод aboutBrowser, который будет выводить на экран обозревателя информацию о свойствах этого объекта:

function showBrowser() {

document.write("Обозреватель: " + this.name + " " + this.version);

}

function Browser(name, version) {

this.name = name;

this.version = version;

this.aboutBrowser = showBrowser;

}

В дальнейшем мы можем вызвать этот метод так: myBrowser.aboutBrowser().

Изменение прототипа объекта

Допустим, что мы хотим в процессе выполнения сценария добавить новое свойство security (безопасность) классу объектов Options (подчеркнем еще раз — классу объектов, а не отдельному его представителю myOptions). Для этого используется свойство prototype объекта Function:

Options.prototype.security = null;

Теперь мы можем присвоить значение новому свойству объекта:

myBrowser.options.security = "Высокая";

Для удаления свойств объектов используется операция delete, например:

delete Options.prototype.security;