Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Spec_Mov_3k_4k_Lect.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.46 Mб
Скачать

Добавление новых свойств и методов

Новые методы и свойства могут добавляться к созданным объектам динамически в любом месте программы. Для этого достаточно применить ссылку на объект в качестве префикса к новому свойству или к имени метода в левой части оператора присваивания.

Пример

Пусть заранее был определен в программе конструктор Myobject с 2-мя параметрами. Тогда создание объекта и добавление к нему нового свойства можно записать следующим образом:

s = new Myobject(3, 5);

………….

s.age = 30; // добавляется новое свойство age со значением 30

В программе можно принудительно указать удаление созданного объекта, отдельного его свойства или метода путем присваивания соответствующему понятию значения null.

Пример

s.age = null;

s = null;

Проверка наличия свойств и методов

Существование определенного свойства проверяется сравнением его со специальным значением undefined, которое возвращается, если выполняется обращение к не существующему свойству или к переменной, которой присваивалось значение null.

Пример

В качестве примера выполним определение функции propertyExist, проверяющей существование некоторого свойства, передаваемого в качестве параметра:

function propertyExist(objProp)

{

var testProp = “” + objProp;

if(testProp == “undefined”)

return false;

else

return true;

}

Применение функции в программе выглядит следующим образом:

if(propertyExist(s.family))

{………………………………………}………………..

Еще один вариант проверки наличия свойств, методов или типов объектов базируется на применении встроенной функции typeof (реализованной в Netscape Navigator). Функция возвращает тип объекта или строку “undefined”. Другие возможные возвращаемые значения, - “function”, “boolean”, “number”, “object” (вычисляется для созданных оператором new объектов или для встроенных в язык объектов), “string”, “date”, “array”.

Встроенные объекты языка программирования

Встроенными в язык объектами являются Array (массив), String (строка), Date (дата), Math (математический пакет), Object (объект). В предыдущих лекциях были рассмотрены примеры работы с объектами Array, Object, Math (доступ к свойствам и применение конструкторов). В Java Script заложен прототипный подход к работе с объектами, - объект может служить прототипом для создания других объектов. Так, все базовые объекты языка имеют предопределенное свойство prototype. С его применением можно создавать собственные пользовательские объекты, доопределяя собственные методы, свойства или конструкторы. Свойство prototype можно представить как словарь, в котором размещаются ассоциации вида: <имя свойства или метода, значение или реализующая функция>.

Пример

………………….

function countChars(с)

{

var hits = 0;

for(var counter = 0; counter<=this.length; counter++)

{

aChar = this.toLowerCase().substring(counter, counter+1);

if(aChar==c)

hits++;

}

return hits;

}

………………….

var sentence = new String(“The quick brown wombat jumped over” + “the lazy dog.”);

String.prototype.count = countChars;

………………….

var numChar = sentence.count(“a”);

alert(“There are” + numChar + “occurences of letter a”);

………………….

В данном примере базовый встроенный в язык объект String дополнен методом count (реализуемым функцией countChars). Функция countChars подсчитывает число вхождений строки “a” в строку-владелец метода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]