Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
03.03.2016
Размер:
174.08 Кб
Скачать

Теперь функцию show_Details() можно вызвать с помощью оператора

e1.showDetails();

Так как переменная e1 является ссылкой на объект emailAddr, который, в свою очередь, является ссылкой на объект person с помощью переменной p1, то в результате выполнения функции будет выведена следующая информация:

Name: Петров В.Г.

Email: petrov@pmi.donetsk.ua

52

Добавление новых

методов – конструкторов в объект

Все объекты имеют свойство prototype для создания новых конструкторов объекта.

Пусть countChars() – функция подсчета появления символа в строке, что находится в аргументе.

Тогда создание нового метода происходит по следующему синтаксису:

String. prototype.count = countChars; 53

count – новый метод, что станет конструктором объекта String;

countChars – ссылка на функцию countChars().

После этого новый метод count может быть применен к любому объекту типа String.

54

Пример:

……………….

function countChars (c) { var hits = 0;

pos = this.toLowerCase().indexOf(arg); while ( pos != -1 )

{ hits ++;

pos = this.toLowerCase().indexOf(arg,pos+1);

}

return(hits);

}

55

String. prototype.count = countChars; //Привязка функции countCars (c) к

// новому методу count объекта String.

var myStr = new String(“Некоторая строка нового текста”);

var numChar = myStr.count(“o”);

alert(“Здесь символ ‘o’ встречается” + numChar + “раз”);

……………………….

56

Оператор this внутри функции ссылается на тот объект, что будет идти

сметодом count.

Впримере - переменной numChar присвоено значение выражения mySt.count(“o”).

Определение метода count() при помощи свойства prototype привязывает функцию countChars (). То есть при обращение к методу count() вызывается функция countChars().

57

Вывод:

Функция – метод-конструктор добавляется только через свойство prototype, которое при обращении к добавленному конструктору упоминать не надо.

58

Отражение объектов

Механизм отражения позволяет выяснить, какие свойства и методы существуют у объекта.

В JavaScript есть простой способ для этого – это применение цикла for…in.

Например, for (name in obj)

{

var value = obj[name];

document.writeln (name+” ”+ value +”<br>”);

}

59

Соседние файлы в папке Лекции