Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Lab7 / ИТСлаб7.doc
Скачиваний:
26
Добавлен:
16.04.2013
Размер:
489.47 Кб
Скачать

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 и увеличивает популярность других языков описания скриптов.