
- •Лабораторная работа № 7 Использование языка JavaScript при разработке html-документов
- •1. Теоретические сведения
- •2. Краткие сведения о языке JavaScript
- •2.1. Типы данных
- •2.2. Литералы
- •2.3. Операторы
- •2.4. Функции
- •2.5. Классы и объекты
- •2.6. Массивы
- •3. Объекты, методы, свойства и функции JavaScript
- •3.1. Объектная модель
- •3.2. Описание свойств, функций, объектов, методов и событий
- •4. Внедрение java-скриптов в html-документ
- •5. Пример html-документа с java-скриптами
- •Лабораторное задание и порядок его выполнения
- •Требования к отчету
- •Варианты заданий
Какую работу нужно написать?
2.4. Функции
Функции в JavaScriptопределяются следующим образом.
function Name_Of_Function (argument, ... ,argument)
{ /*операторы*/ }
Типы аргументов функции не указываются.
Функции можно передавать переменное число аргументов (большее, чем число объявленных в явном виде аргументов). Доступ к списку аргументов осуществляется с помощью массива FunctionName.arguments. Длина списка аргументов –FunctionName.arguments .length.
2.5. Классы и объекты
Классы в JavaScriptв явном виде не определяются. Чтобы определить класс нужно написать его конструктор и его методы.
function ClassName(argument)
{
this.attribute = argument
this.MethodName = Function
/*операторы*/
}
function Function(arguments) { /*операторы*/ }
В теле метода для обращения к свойствам и методам класса также используется ключевое слово this.
Чтобы свойствам класса задать значения по умолчанию используется конструкция:
this.attribute = argument || constant
Создание объекта класса:
ObjectName = new ClassName(arguments)
Наследование классов:
ClassName.prototype = new ParentClassName
Данная конструкция пишется после определения конструктора класса.
Чтобы определить свойство класса как объект другого класса пишется конструкция:
this.attribute = ClassName
Чтобы передать ссылку на объект класса нужно передать имя этого объекта в строке аргументов функции. Для передачи ссылки на объект, задаваемый, например, тегом, и вызывающий функцию, или на объект, которому принадлежит метод, вызывающий функцию, также используется ключевое слово this. В общем случае ключевое словоthisявляется ссылкой на объект, внутри которого оно используется.
В языке JavaScriptочень многие объекты определяются неявно: для тегов, задающих картинки, гиперссылки, элементы формы; для строковых переменных и констант; а также для самойhtml-страницы в соответствии с объектной моделью браузера.
2.6. Массивы
В JavaScript1.1 не было массивов. Поэтому их приходилось создавать искусственно из объектов следующим способом.
// Определение класса-массива
function ArrayClass(n)
{
this.length = n
for (i=0; i<n; i++)
this[i] = 0;
return this;
}
// Создание массива
myArray = new ArrayClass(ArraySize)
myArray[0] = Value
...
myArray[ArraySize-1] = Value
Для описания таблиц следует написать класс, описывающий строку таблицы, (например, TableLine), а затем создать саму таблицу следующим образом:
myTable = new ArrayClass(ArraySize)
myTable[0] = new TableLine(attibutes_values);
...
myTable[ArraySize-1] = new TableLine(attibutes_values);
Атрибуты любого объекта также образуют массив. Например, к атрибутам объекта myCarвыше описанного классаCarможно обратиться следующим образом:myCar["Make"],myCar["Model"]илиmyCar[0],myCar[1].
Сейчас в JavaScriptимеется объектArray, предназначенный для создания на его основе массивов вышеописанным способом.
3. Объекты, методы, свойства и функции JavaScript
Доступ к данным, представленным на html-странице, осуществляется через объектную модель. При выполнении java-скрипта браузер связывает данную объектную модель со своим внутренним представлением html-страницы и обеспечивает отображение всех изменений, производимых java-скриптом, на экране компьютера. Объектные модели различных браузеров сильно отличаются друг от друга, и это существенно ограничивает использование языка JavaScript и увеличивает популярность других языков описания скриптов.