- •Xhtml 1.0 Strict
- •Xhtml 1.0 Transitional
- •Xhtml 1.0 Frameset
- •Xhtml 1.1
- •1.1Типы данных, переменные и литералы.
- •1.1.1 Преобразование типов данных.
- •1.1.2 Переменные.
- •1.1.3 Литералы.
- •1.2 Выражения и простые операторы.
- •1.2.1 Условные выражения.
- •1.2.2 Оператор присваивания.
- •1.2.3 Операторы cравнения.
- •1.2.4 Арифметические операторы.
- •1.2.5 Битовые операторы.
- •1.2.6 Логические операторы.
- •1.2.7 Строковые операторы.
- •1.2.8 Специальные операторы.
- •1.2.9 Приоритеты операторов.
- •1.3 Управляющие операторы JavaScript.
- •1.3.1 Условный оператор.
- •1.3.3 Оператор манипулирования объектами.
- •1.3.4 Комментарии.
- •1.4 Функции.
- •1.4.1 Использование функций.
- •1.4.2 Использование массива аргументов.
- •1.5.1 Объекты и свойства.
- •1.5.2 Создание новых объектов.
- •1.5.3 Использование индексов для свойств объекта.
- •1.5.4 Определение свойств объекта по умолчанию.
- •1.6 Методы.
- •1.6.1 Использование this для ссылок на объект.
- •1.6.2 Удаление объекта.
- •1.7 Встроенные объекты и их методы.
- •1.7.1 Объекты Array.
- •1.7.2 Объекты Boolean.
- •1.7.3 Объект Date.
- •1.7.4 Объект Function.
- •1.7.5 Объект Math.
- •1.7.6 Объект Number.
- •1.7.7 Объект String.
- •Variable Value
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"]