Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по Программированию в интернете.docx
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
544.18 Кб
Скачать

1.5.2 Создание новых объектов.

И клиент и сервер JavaScript имеют набор предопределенных объектов. Кроме этого, есть возможность создавать свои собственные объекты, для этого необходимо:

1. Определить тип объекта с помощью конструктора.

2. Создать экземпляр объекта с помощью оператора new.

Для того, чтобы определить тип объекта, создается функция, в которой определяется имя, свойства, и методы объекта. Например, предположим, что мы хотим создать объект типа отдел. Мы хoтим, чтобы он назывался department и имел свойства - название(name), руководитель(chief), число сотрудников(number_of_workers) и тема над которой работает отдел(theme). Функция будет выглядеть следующим образом:

function department(name, chief, number_of_workers, theme)

{ this.name = name

this.chief = chief

this.number_of_workers = number_of_workers

}

Заметим, что значения свойств объекта определяются значениями, переданными функции. Теперь создадим объект типа department с именем ourdep:

ourdep = new department("rk6", "Norenkov I.P.", 23)

В том операторе объекту ourdep назначаются следующие свойства: ourdep.name присваивается строковое значение "rk6", ourdep. number_of_workers - целое 23 и т.д. Можно создать любое количество таких объектов, еще один пример: iu6dep = new department("iu6", "Smirnov U.M", 34). Объект может иметь свойства, которые являются свойствами другого объекта. Предположим мы определяем объект person:

function person(name, age, sex) {

this.name = name

this.age = age

this.sex = sex

}

и создаем два экземпляра этого объекта:

fed = new person("Fedoruk V.G.", 43, "M")

trudon = new person("Trudonoshin V.A.", 46, "M")

Теперь мы хотим переопределить объект department, чтобы он включал новое свойство - сотрудников:

function department(name, chief,number_of_workers, collab)

{ this.name = name

this.chief = chief

this.number_of_workers = number_of_workers

this.collab =collab }

Создаем новые объекты типа department:

ourdep = new department("rk6", "Norenkov I.P.", 23,trudon)

iu6dep = new department("iu6", "Smirnov U.M", 34,fed)

Можно обратить внимание, что при создании объектов типа department, им в качестве аргументов передаются имена объектов. Теперь, если мы хотим найти имя сотрудника отдела iu6, то можем воспользоваться следующей записью:

iu6.collab.name

Заметим, что всегда можно добавить свойства к ранее определенному объекту, например оператор rk6.theme = "rk6-07" добавит свойство theme к rk6, и назначит ему значение "rk6-07". Однако это не повлияет на другие объекты, для добавления новых свойств ко всем объектам данного типа необходимо изменить определение объекта.

1.5.3 Использование индексов для свойств объекта.

В Navigator 2.0, можно обратиться к свойствам объекта по их названию или по их порядковому индексу. В Navigator3.0, если первоначально свойство определено с помощью названия, то при обращении к нему нужно использовать название, если первоначально воспользовались индексом, то и обращение должно быть с индексом. Исключением из этого правила - объекты типа form, к ним можно обратиться как к элементу массива в соответствии с их порядковым номером (он определяется порядком появления формы в документе) или по имени. Например, если второй тег <FORM> в документе имеет аттрибут NAME "myForm", можно обратиться к этой форме двумя способами:

document.forms[1]

document.forms["myForm"]