Использование языка JavaScript при разработке HTML-документов, страница 5

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. Массивы

В JavaScript 1.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);