КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Создание экземпляра объекта с помощью инициализатора
Создание пользовательских объектов и экземпляров объектов Для создания собственных (пользовательских) объектов в JavaScript можно использовать два способа: · создание экземпляра объекта с помощью инициализатора; · создание объекта с помощью функции-конструктора. Инициализатор объекта создает уникальный экземпляр объекта с заданными свойствами и методами. Инициализатор имеет следующий синтаксис: { идентификатор-свойства-1: выражение-1,
идентификатор-свойства-2: выражение-2, … идентификатор-функции-1: function(список-параметров-1) { тело-функции-1 }, идентификатор-функции-2: function(список-параметров-2) { тело-функции-2 }, … } При создании экземпляра объекта с помощью предложения: var идентификатор-объекта = инициализатор-объекта; выражения вычисляются и их значение присваивается свойствам, а функции становятся доступными для использования их экземпляром объекта. Значение переменной идентификатор-объекта можно присвоить другой переменной. Однако, в отличие от обычной операции присваивания, новая переменная не создает новый экземпляр объекта. При изменении значения одной из переменных это же значение присваивается другой переменной. Такие переменные называются связанными. В выражениях для свойств можно указывать не только литералы и переменные, но и объект.
Пример 4.4.63. Использование инициализатора объекта: 1. // Создание экземпляра объекта point var point = { x:0, // Свойство x: координата x точки y:0, // Свойство y: координата y точки // Функция assign: присваивание значений // координатам точки assign:function(x, y) { // Присваивание значения // координате x точки this.x = x; // Присваивание значения // координате x точки
this.y = y; // Возврат объекта return this; }, // Функция move: перемещение точки move:function(dx, dy) { // Перемещение точки на заданное // приращение по оси x this.x += dx; // Перемещение точки на заданное // приращение по оси y this.y += dy; },
// Функция toString: преобразование // объекта point в строку toString:function() { return "(" + this.x + "," + this.y + ")"; } }; … // Вывод текущих значений свойств // x и y объекта point alert("x=" + point.x + " y=" + point.y); // Создание связанного объекта point1 // с заданными координатами point1 = point.assign(3, 4); // Вывод координат point1 alert("point1= " + point1.toString()); // Перемещение point1 point1.move(5, -3); // Вывод координат point alert("point= " + point.toString()); В этом фрагмента с помощью инициализатора создается объект point (точка) со свойствами x и y, а также функциями assign(),move() и toString(). Вывод фрагмента имеет следующий вид:
2. // Создание экземпляра объекта line var line = { // Координаты x и y начала линии // (использован объект point) coord1:point.assign(0,0), // Координаты x и y окончания линии // (создан новый экземпляр объект point) coord2: { x:1, // Свойство x: координата x точки y:1, // Свойство y: координата y точки // Функция assign: присваивание значений // координатам точки assign:function(x, y) { // Присваивание значения // координате x точки this.x = x; // Присваивание значения // координате x точки this.y = y;
// Возврат объекта return this; }, // Функция toString: преобразование // объекта point в строку toString:function() { return "(" + this.x + "," + this.y + ")"; } }, // Функция length: определение длины линии length:function() { return Math.sqrt(Math.pow(this.coord1.x – this.coord2.x, 2) + Math.pow(this.coord1.y - this.coord2.y, 2)); return Math.sqrt(Math.pow(this.coord1.x - this.coord2.x, 2) + Math.pow(this.coord1.y - this.coord2.y, 2)); }, // Функция toString: преобразование // объекта line в строку toString:function() { return "(" + this.coord1.toString() + "," + this.coord2.toString() + ")"; }
}; … // Вывод координат и длины линии alert("Линия: " + line.toString() + " Длина: " + line.length()); // Изменение координат линии
line.coord1.assign(2,5); line.coord2.assign(7,10); // Вывод координат и длины новой линии alert("Новая линия: " + line.toString() + " Длина: " + line.length()); В этом фрагменте сценария с помощью инициализатора создается объект (линия), для которого определены свойства coord1 и coord2, а также функции length() и toString(). Свойства coord1 и coord2 являются объектами – точками. Для инициализации свойства coord1 использован объект point из пункта 1 этого примера. Инициализатор для coord2 помещен непосредственно в инициализатор line. Вывод фрагмента имеет следующий вид:
Дата добавления: 2014-01-05; Просмотров: 268; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |