Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции.rtf
Скачиваний:
115
Добавлен:
15.06.2014
Размер:
24.67 Mб
Скачать

4.4.3 Определение методов

Метод - функция, связанная с объектом. Определяется метод таким же образом, как определяется стандартная функция. Затем, используйте следующий синтаксис, чтобы связать функцию с существующим бъектом:

object.methodname = function_name

Где object - существующий объект, methodname - имя, которое присваивается методу, и function_name - имя функции.

Можновызывать метод в контексте объекта следующим образом:

object.methodname (params);

Использование this для Ссылок Объекта

JavaScript имеет специальное ключевое слово, this, которое можно использовать, чтобы обращаться к текущему объекту. Например, пусть есть функция с именем validate , которая проверяет правильность свойства значения объекта, данного объект, и high и low значения:

function validate(obj, lowval, hival) {

if ((obj.value < lowval) || (obj.value > hival))

alert("Invalid Value!")

}

Можновызывать validate в каждом элементе формы обработчика событий onChange, используя this, как показано в следующем примере:

< INPUT TYPE = "text"

NAME = "age"

SIZE = 3

onChange="validate(this, 18, 99)">

Вообще, метод this обращается к вызывающему объекту.

4.4.4 Создание Новых Объектов

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

Определить тип объекта, написанной функции.

Создать образец объекта с new.

Чтобы определять тип объекта, создайте функцию для типа объекта, которая определяет его имя, и его свойства и методы. Например, пусть необходимо создавать тип объекта для автомобилей, который будет назван car, и необходимо, чтобы он имел свойства для make, model, year, и color. Чтобы сделать это, необходимо написать следующую функцию:

function car(make, model, year) {

this.make = make;

this.model = model;

this.year = year;

}

Замечание, используйте this, чтобы присвоить значения свойствам объекта, основанные на значениях функции.

Теперь можно создавать объект, с именем mycar следующим образом:

mycar = new car("Eagle", "Talon TSi", 1993);

Это утверждение создает mycar и присваивает ему указанные значения для его свойств. Затем значение mycar.make - строка "Eagle", mycar.year - целое число 1993, и так далее.

Можносоздавать любое число объектов car запрашивая к new. Например,

kenscar = new car("Nissan", "300ZX", 1992)

Объект может иметь свойство, которое является самостоятельным другим объектом. Например, пусть определен объект с именем person следующим образом:

function person(name, age, sex) {

this.name = name;

this.age = age;

this.sex = sex;

}

И затем подтверждаете два новых объектов person следующим образом:

rand = new person("Rand McNally", 33, "M")

ken = new person("Ken Jones", 39, "M")

Затем можно перезаписать определение car, чтобы включить свойство владельца, которое берет объект person, следующим образом:

function car(make, model, year, owner) {

this.make = make;

this.model = model;

this.year = year;

this.owner = owner;

}

Затем используется следующее:

car1 = new car("Eagle", "Talon TSi", 1993, rand);

car2 = new car("Nissan", "300ZX", 1992, ken)

Заметим, что вместо прохождения строкового литерала или целого числа вычисляет при создании новых объектов, вышеупомянутый ход утверждений объектов rand и ken как аргументов владельцев. Затем, если необходимо выяснять имя владельца car2, можно обращаться к следующему свойству:

car2.owner.name

Заметьте, что можно всегда прибавлять свойства к предопределенному объекту. Например, утверждение:

car1.color = "black"

Прибавляет свойство color к car1, и присваивает ему значение " black". Однако, это не воздействует на любые другие объекты. Чтобы прибавить новое свойство ко всем объектам того же самого типа, необходимо прибавить свойство к определению типа объекта car.

Соседние файлы в предмете Программирование для Web