Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов




НазваниеЛекция 2-07 12. Создание пользовательских объектов и экземпляров объектов
страница3/10
Дата публикации15.03.2013
Размер1.04 Mb.
ТипЛекция
uchebilka.ru > Астрономия > Лекция
1   2   3   4   5   6   7   8   9   10
^

4.4.13. Дополнительные средства работы с объектами

4.4.13.1. Предложение for…in


Предложение for...in позволяет организовать цикл по значениям массива или свойствам объекта JavaScript. Синтаксис его следующий:

for (переменная-цикла in объект)

{

[предложения]

}

Этот цикл производит перебор значений элементов массива или свойств и методов объекта. В переменной цикла на каждой итерации сохраняется значение текущего элемента массива или свойства объекта. Количество итераций равно элементов массива или количеству свойств, существующих у заданного в заголовке цикла объекта. Для свойств выводятся их текущие значения, а для методов – тексты определений соответствующих им функций.

При выполнении предложения for...in выводятся только перечислимые свойства, т.е. свойства для которых вызов функции propertyIsEnumerable() возвращает значение true (см. 4.4.11.9.3).
Пример 4.4.66. Использование предложения for...in:

1. d = [1, 10,3,8]; // Создание массива d

// Определение начального значения

// строки вывода

outputString = "";

// Цикл по элементам массива d

for(propertyName in d)

{

// Добавление имени и значения

// текущего элемента к строке вывода

outputString += "\n d[" +

propertyName + "]=" + d[propertyName];

}

// Вывод имен и значений элементов массива d

alert("Элементы массива d:" + outputString);

В этом фрагменте сценария перебираются элементы массива d и результат выводится с помощью функции alert():





2. // Определение начального значения

// строки вывода

outputString = "";

// Цикл по свойствам и методам объекта square1

for(propertyName in square1)

{

// Добавление текущего свойства square1

// к строке вывода

outputString += "\n " + propertyName +

"=" + square1[propertyName];

}

// Вывод свойств объекта square1

alert("Свойства объекта square1:" + outputString);

В этом фрагменте сценария перебираются свойства и методы объекта square1 (см. пример 4.4.65) и результат выводится с помощью функции alert():


^

4.4.13.2. Предложение with


Предложение with задает объект по умолчанию для блока операторов, определенных в его теле. Это означает, что все встречаемые в операторах этого блока свойства и методы, являются свойствами и методами указанного объ­екта. Применение данного оператора избавляет от необходимости указывать иерархию принадлежности объекта и сокращает исходный текст программы.
Пример 4.4.67. Использование предложения with:

// Объявление строковых объектов string1 и string2

var string1=new String("строка 1");

var string2=new String("строка 2");

// Вывод длины string1

alert("Длина строки = " + string1.length);

// Вывод результата конкатенации string1 и string2

alert("Конкатенация string1 и string2 = " +

string1.concat(" ", string2));

В этом фрагменте сценария объявлены две строки string1 и string2, а затем длина string1 и конкатенация строк string1 и string2 выводится на экран.

Используя предложение with фрагмент вывода длины строки и конкатенации строк можно записать по-другому:

// Задание объекта string1 как объекта по умолчанию

with (string1)

{

// Вывод длины string1

alert("Длина строки = " + length);



alert("Конкатенация string1 и string2 = " +

concat(" ", string2));

}

Как видно из приведенного фрагмента, имя объекта string1 для свойства length и метода concat() в теле предложения with не указывается.

Вывод этого фрагмента сценария имеет следующий вид:




^

4.4.13.3. Оператор typeof


Оператор

typeof выражение

возвращает строку, значением которой является тип объекта для выражения. Оператор может вернуть одно из следующих значений: number – для числа, string – для строки, boolean – для булевского значения, object – для объектного типа Object, function – для функции и undefined – в остальных случаях.
Пример 4.4.68. Использование оператора typeof:

d = 5; // Объявление числовой переменной d

str1 = "Строка 1"; // Объявление строковой переменной str1

// Вывод типа переменных d и str1

alert("Тип d: " + (typeof d) +

" Тип str1: " + (typeof str1));

Вывод этого фрагмента сценария имеет следующий вид:


^

4.4.13.4. Оператор instanseof


Оператор

объект instanceof тип

возвращает значение true, если объект является экземпляром заданного типа и false – в противном случае.
Пример 4.4.69. Использование оператора instanceof:

// Проверка, является ли rhomb1 объектом типа Rhomb

isRhomb = rhomb1 instanceof Rhomb;

// Проверка, является ли rhomb1 объектом типа Square

isSquare = rhomb1 instanceof Square;

// Проверка, является ли rhomb1 объектом типа Rectangle

isRectangle = rhomb1 instanceof Rectangle;

// Проверка, является ли rhomb1 объектом типа String

isString = rhomb1 instanceof String;

// Вывод результатов операций

alert("rhomb1 - объект типа Rhomb? Ответ: " + isRhomb +

"\nrhomb1 - объект типа Square? Ответ: " + isSquare +

"\nrhomb1 - объект типа Rectangle? Ответ: " + isRectangle +

"\nrhomb1 - объект типа String? Ответ: " + isString);

В этом фрагменте выполняется проверка, является ли объект rhomb1 (см. пример 4.4.65) объектом типа Rhomb, Square, Rectangle или String.

Вывод этого фрагмента сценария имеет следующий вид:


^

4.4.13.5. Оператор delete


Оператор

delete переменная

возвращает значение true, если переменная удалена и false – в противном случае.

В качестве переменной может выступать имя простой переменной (числовой, строковой или булевской), имя объекта, имя свойства объекта или имя элемента массива. Если переменная объявлена с помощью ключевого слова var, ее нельзя удалить. Нельзя также удалить предопределенное свойство объекта, например, свойство length объектов типа String или Array. Если переменная удалена, все ссылки на нее рассматриваются как ссылки на переменную со значением undefined. При удалении элемента массива длина массива не изменяется.
Пример 4.4.70. Использование оператора delete:

// Объявление переменной x без ключевого слова var

x = 5;

// Объявление переменной y с ключевым словом var

var y = 3;

// Создание объекта str1 типа String

str1 = new String("Строка 1");

// Добавление нового свойства index для объекта str1

str1.index = 1;

// Создание нового объекта str2 типа String

str2 = new String("Строка 2");

// Создание объекта a типа Array

a = new Array(1, 2, 3, 4, 5);

// Удаление неявно объявленной переменной x

isXDeleted = delete x;

// Удаление явно объявленной переменной y

isYDeleted = delete y;

// Удаление предопределенного свойства length

// объекта str1

isStr1LengthDeleted = delete str1.length;

// Удаление пользовательского свойства index

// объекта str1

isStr1IndexDeleted = delete str1.index;

// Удаление объекта str2

isStr2Deleted = delete str2;

// Удаление элемента массива a с индексом 3

isAElement3Deleted = delete a[3];

// Вывод результатов удаления

alert("Переменная x удалена? Ответ: " + isXDeleted +

"\nПеременная y удалена? Ответ: " + isYDeleted +

"\nСвойство length удалено? Ответ: " +

isStr1LengthDeleted +

"\nСвойство index удалено? Ответ: " + isStr1IndexDeleted +

"\nЭлемент массива a с индексом 3 удален? Ответ: " +

isAElement3Deleted);

Вывод этого фрагмента сценария имеет следующий вид:




В дальнейшем обращение к удаленной переменной, например, к переменной x в выражении z=x+2 приведет к выводу сообщения об ошибке: "x" – определение отсутствует (x is not defined).
^

4.4.13.6. Оператор in


Оператор

переменная in объект

где переменная – свойство объекта или индекс массива. Оператор возвращает значение true, если свойство определено для объекта или элемент с заданным индексом есть в массиве и false – в противном случае.
Пример 4.4.71. Использование оператора in:

// Создание объекта str1 типа String

str1 = new String("Строка 1");

// Добавление нового свойства firstSymbol

// для объекта str1

str1.firstSymbol = "С";

// Создание массива a

a = [1, 2, 3,, 5];

// Проверка наличия свойства length в объекте str1

hasStr1Length = "length" in str1;

// Проверка наличия свойства firstSymbol в объекте str1

hasStr1FirstSymbol = "firstSymbol" in str1;

// Проверка наличия метода split для объекта str1

hasStr1Split = "split" in str1;

// Проверка наличия метода join для объекта str1

hasStr1Join = "join" in str1;

// Проверка наличия свойства firstElement в объекте a

hasAFirstElement = "firstElement" in a;

// Проверка наличия элемента с индексом 1 в массиве a

hasAElement1 = 1 in a;

// Проверка наличия элемента с индексом 3 в массиве a

hasAElement3 = 3 in a;

// Вывод результатов проверки

alert("Есть свойство length в объекте str1? Ответ: " +

hasStr1Length +

"\nЕсть свойство firstSymbol в объекте str1? Ответ: " +

hasStr1FirstSymbol +

"\nЕсть метод split для объекта str1? Ответ: " +

hasStr1Split +

"\nЕсть метод join для объекта str1? Ответ: " +

hasStr1Join +

"\nЕсть свойство firstSymbol в массиве a? Ответ: " +

hasAFirstElement +

"\nЕсть в массиве a элемент с индексом 1? Ответ: " +

hasAElement1 +

"\nЕсть в массиве a элемент с индексом 3? Ответ: " +

hasAElement3);

Вывод этого фрагмента сценария имеет следующий вид:


^

4.4.13.7. Оператор void


Оператор

void выражение

или

void(выражение)

вычисляет выражение, но не возвращает никакого значения.
Пример 4.4.72. Использование оператора void:

1. <a href="javascript:alert('Разрешенная гиперссылка');

location.href='testRE1.html'">Ссылка 1



В элементе <a> перед переходом к Web-странице с именем testRE1.html на экран с помощью функции alert() выводится следующее сообщение:




Если изменить этот элемент следующим образом:

<a href="javascript:alert('Запрещенная гиперссылка');

void(0)">Ссылка 2><br/>

то будет выведено следующее сообщение:



Выражение внутри оператора void будет вычислено, но перехода по ссылке не произойдет.

2. Переход по ссылке с предварительным запросом:

Разрешить гиперссылку?');

if (ans) location.href='testRE1.html'; else void(0)">

Ссылка 3a>

Перед переходом с помощью функции confirm() задается вопрос:



Если ответ утвердительный, выполняется переход к Web-странице testRE1.html, иначе переход не выполняется.

Использованное в этом примере свойство href объекта location Web-браузера рассмотрено в 4.4.24.
1   2   3   4   5   6   7   8   9   10

Похожие:

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛекция №4 создание символов и работа с эффектами в adobe flash
Создание документа (размеры, цвет фона, частота кадров). Выравнивание объектов в документе

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconРешение городского Совета о включении в перечень объектов, подлежащих приватизации
Дополнения к Перечню объектов коммунальной собственности, включенных в перечни объектов

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconРешение №12/1 от 25. 01. 07 (пятый созыв двенадцатая сессия) "Отчет...
Ия 17 объектов коммунальной собственности. С учетом 6-и объектов, переходящих из Перечня объектов, подлежащих приватизации в 2005...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛабораторная работа №3 Тема: Изучение основ параметрической анимации в 3d studio max
Цель работы: Изучить основные виды и способы анимации параметров объектов в 3d studio max: анимация по ключевым кадрам, анимация...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconОценка эффективности инвестиций в недвижимости
В отличие от финансовых инвестиций, недвижимость имеет явно выраженную материальную форму, более высокий уровень защиты от инфляции,...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛекция 5 Тема: Элементы окна программы компас-3D, управление изображением...
Анализируя свойства этих простых трехмерных геометрических объектов можно сделать вывод о том, что форма каждого из них имеет свои...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconИнспектор ип «gsg украйна»
Инспектирование грузов и объектов (Агро сектор, Металлургия). Управление залоговым хранением. Техническое инспектирование объектов...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconПрограмма ArCon проста и удобна в освоении и использовании. Вы научитесь...
Многократное копирование элементов и объектов. Полукруглые, круглые стены с возможностью редактирования. Загрузка объектов в режиме...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconДиаграммы объектов
Диаграммы объектов применяют при моделировании статических видов системы с точки зрения проектирования и процессов. При этом моделируется...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconОбщие положения
Целью Программы является создание банка данных для обеспечения органов исполнительной власти полноразмерными копиями документов и...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<