- •Дисциплина «Программное обеспечение компьютерных сетей» Специальность 230105 Лабораторная работа №1, 2. «Использование встроенных объектов и функций».
- •Практическое задание.
- •Вопросы для контроля.
- •Дисциплина «Программное обеспечение компьютерных сетей» Специальность 230105 Лабораторная работа №3. «Создание пользовательских объектов и обработка событий».
- •Свои методы объектов
- •Доступ к объекту через this
- •Функция-конструктор, «new»
- •Создание методов в конструкторе
- •Приватные свойства
- •Открытие и закрытие окон
- •Открытие окон
- •Закрытие окон
- •Использование фреймов
- •Модификация фреймов
- •Обращение и управление среди фреймов
- •Пример Фреймов
- •Обращение к окнам и фреймам
- •Обращение к свойствам, методам, и обработчикам события окна
- •Обращение к окну подчиненной формы или гиперсвязи
- •Управление окнами
- •Практическое задание.
- •Событие submit
- •Взаимосвязь событий submit и click
- •Метод submit
- •Практическое задание.
- •Структура анимации
- •Временная функция delta
- •Линейная delta
- •В степени n
- •Back: стреляем из лука
- •Упругая анимация
- •Реверсивные функции (easeIn, easeOut, easeInOut)
- •Графопостроитель
- •Сложные варианты step
- •Подсветка цветом
- •Набор текста
- •Сценарии, которые могут работать в разных браузерах
- •Доступ к таблицам стилей
- •Свойства таблиц стилей
- •Добавление и удаление правил
- •Изменение стилей элементов
- •Имена классов элементов
- •Практическое задание.
- •Контрольные вопросы.
Практическое задание.
Создайте главную страницу сайта магазина электронной техники.
Оформите главное меню сайта в виде кнопок, при нажатии на которые появляются анимированные меню. Главное меню содержит следующие пункты: «Компьютеры» - «Стационарные», «Ноутбуки», «Нетбуки», «Планшетники»; «Мобильные телефоны» - «Телефоны», «Смартфоны»; «Другие устройства» - «Видеорегистраторы», «Навигаторы», «Цифровые фотоаппараты»; «Контакты». При наведении указателя мыши на каждый пункт меню цвет его должен меняться. Пункты меню должны подсвечиваться при наведении на них указателя.
Разместить на главной странице часы с текущим временем и календарь с указанием текущей даты и дня недели.
При наведении на пункт меню в строке состояния должно появляться название страницы, которую можно открыть.
При входе на сайт должно поверх главной страницы появляться окно с предложением войти под своим именем или зарегистрироваться.
Вопросы для контроля.
Что представляет собой объектная модель JavaScript?
Каким образом представлены массивы данных в JS?
Объясните назначение и свойства объекта String.
Объясните назначение и свойства объекта Number.
Объясните назначение и свойства объекта Function.
Объясните назначение и свойства объекта String.
Объясните назначение и свойства объекта Date.
Объясните назначение и свойства объекта Array.
Объясните назначение и свойства объекта Boolean.
Дисциплина «Программное обеспечение компьютерных сетей» Специальность 230105 Лабораторная работа №3. «Создание пользовательских объектов и обработка событий».
Теоретическая часть.
Свои методы объектов
При объявлении в объект можно записать функцию. Она становится его методом, например:
01 |
var user = { |
02 |
name: 'Василий', |
03 |
|
04 |
// метод |
05 |
sayHi: function() { |
06 |
alert('Привет!'); |
07 |
} |
08 |
|
09 |
}; |
10 |
|
11 |
// Вызов метода |
12 |
user.sayHi(); |
Можно создать метод и позже, явным присвоением:
01 |
var user = { |
02 |
name: 'Василий' |
03 |
}; |
04 |
|
05 |
user.sayHi = function() { |
06 |
alert('Привет!'); |
07 |
}; |
08 |
|
09 |
// Вызов метода: |
10 |
user.sayHi(); |
Доступ к объекту через this
Для полноценной работы метод должен иметь доступ к данным объекта. В частности, вызовuser.sayHi() может захотеть вывести имя пользователя.
Для доступа к объекту из метода используется ключевое слово this. Значением this является объект, в контексте которого вызван метод, например:
1 |
var user = { |
2 |
name: 'Василий', |
3 |
|
4 |
sayHi: function() { |
5 |
alert( this.name ); |
6 |
} |
7 |
}; |
8 |
|
9 |
user.sayHi(); |
Здесь при выполнении функции user.sayHi() в this будет храниться ссылка на текущий объектuser.
В данном случае вместо this можно было бы использовать и переменную: alert( user.name ), но объект user может быть куда-то передан, переменная user перезаписана и т.п. Использование thisгарантирует, что функция работает именно с тем объектом, в контексте которого вызвана.
Через this можно обратиться к любому свойству объекта, а при желании и передать его куда-то:
01 |
var user = { |
02 |
name: 'Василий', |
03 |
|
04 |
sayHi: function() { |
05 |
showName(this); // передать текущий объект в showName |
06 |
} |
07 |
}; |
08 |
|
09 |
function showName(obj) { |
10 |
alert( obj.name ); |
11 |
} |
12 |
|
13 |
user.sayHi(); |
Создайте объект calculator с тремя методами:
readValues() запрашивает prompt два значения и сохраняет их как свойства объекта
sum() возвращает сумму двух значений
mul() возвращает произведение двух значений
результат кода:
1 |
var calculator = { |
2 |
... ваш код... |
3 |
} |
4 |
|
5 |
calculator.readValues(); |
6 |
alert( calculator.sum() ); |
7 |
alert( calculator.mul() ); |
Есть объект «лестница» ladder:
01 |
var ladder = { |
02 |
step: 0, |
03 |
up: function() { // вверх по лестнице |
04 |
this.step++; |
05 |
}, |
06 |
down: function() { // вниз по лестнице |
07 |
this.step--; |
08 |
}, |
09 |
showStep: function() { // вывести текущую ступеньку |
10 |
alert(this.step); |
11 |
} |
12 |
}; |
Сейчас работать с ним скучно:
1 |
ladder.up(); |
2 |
ladder.up(); |
3 |
ladder.down(); |
4 |
ladder.showStep(); // 1 |
Модифицируйте код, чтобы вызовы можно было делать цепочкой, вот так:
ladder.up().up().down().up().down().showStep(); // 1 |
Такой подход используется, например, во фреймворке jQuery.
