Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Власні функції та обробники подій.docx
Скачиваний:
0
Добавлен:
20.08.2019
Размер:
33.21 Кб
Скачать

Власні функції та обробники подій

Певні фрагменти програми можна згрупувати у логічно завершену структуру, яка називається функцією. Функцію можна викликати і отримати до неї доступ у будь-який момент. Функції можна передати параметри, а функція повертає значення. У JavaScript оголошення функції виглядає, як ключове слово function, за яким іде ім'я функції. Безпосередньо за ім'ям функції завжди вказуються круглі дужки. В них містяться параметри функції, однак вказувати їх необов'язково. Наприклад, function hello () оголошує функцію з ім'ям hello.

Всі пропозиції JavaScript, що входять у функцію, повинні бути укладені в фігурні дужки, наступні після оголошення функції. Оператори функції можуть бути виконані тільки через виклик функції. Імена функцій підкоряються тим же обмеженням і задовольняють тим же вимогам, що і змінні, а саме: вони повинні починатися з літери, не повинні містити пробілів та спеціальних символів на зразок +, *, /, &,%, $​​, #​​, @ і! . Слід також пам'ятати, що імена функцій залежать від використовуваного при введенні символів регістра клавіатури.

<script language=”javascript”>

function quote() {

document.write(”Потрібно вміти слухати”);

}

</script>

Виклик функції

Якщо функція оголошена, її можна виконати будь-якої миті, помістивши звернення до неї в потрібному місці документа. Незалежно від того, чи має функція параметри, при виклику функції після її імені необхідно вказати круглі дужки. Наприклад, якщо функція визначена як function helIo () , виконати її можна за допомогою оператора hello ( ). Звернутися до функції можна як до так і після її оголошення.

<script language=”javascript”>

function quote() {

document.write(”Потрібно вміти слухати”);

}

quote(); // виклик функції

</script>

Поняття локальних та глобальних змінних

Змінні, оголошені усередині функції за допомогою ключового слова var, є локальними по відношенню до функції, в якій вони введені. Вони будуть "видимі" тільки всередині функції і не будуть розпізнаватися ні в одному з речень мови JavaScript поза функції. Наприклад, якщо змінна myVarl оголошена в тілі функції за допомогою оператора var, то змінна може використовуватися усередині функції, однак якщо посилатися на цю змінну поза функцією, її значення буде невідомо. Змінні, оголошені усередині функції без ключового слова var, називаються глобальними.

Змінні, оголошені поза функції (навіть якщо в їх оголошенні використано ключове слово var), також будуть глобальними. Їх можна використовувати в будь-якому місці поточного документа, як всередині, так і поза функцій.

Передача параметрів функції

Якщо функцію необхідно виконувати при різних значеннях змінних, ці значення можна передати функції в якості параметрів. Параметри передаються функції в дужках після імені функції. Функції можна передати значення декількох змінних, розділивши їх комами. Оператор виклику функції може включати значення, а визначення функції може містити імена змінних. Ці змінні можна використовувати всередині функції.Кількість значень у виклику функції повинна відповідати кількості змінних у визначенні функції. Наприклад якщо функція визначається як function sum(a, b, с), то оператор виклику функції sum (16, 34, 98) помістить значення 16 в змінну а, 34 – в змінну b і 98 – в змінну с. Повернення значень функцією

Функції можна вказати на необхідність повернути значення за допомогою ключового слова return. Це дозволяє їй визначити результуюче значення і переслати його знову в основну програму. Наприклад, якщо в програму включена функція, обчислює деяку суму, і ця сума запам'ятовується в змінній total, оператор return total відправляє значення total в то місце в програмі, з якого було виконано звернення до функції.

Оскільки значення передається назад в точку виклику функції, виклик функції має представляти собою оператор, в якому це значення, що повертається будь-яким чином використовується. Наприклад, оператор var1 = funс1 () помістить значення, що повертається функцією funс1() в змінну var1. Функція може повертати дані строкового і чисельного типів, а також будь-які інші значення.

Виклик функції по html-посиланню

Функцію можна викликати, вказавши її ім'я в якості оператора JavaScript. Функцію JavaScript можна також викликати, вказавши її ім'я в HTML-посиланням. Для цього потрібно скористатися ключовим словом javascript, за яким слідують двокрапка і ім'я функції. Наприклад, якщо посилання визначене за допомогою дескриптора <а>, а атрибут href встановлений рівним javascript: hello (), то після клацання на посиланні буде викликана функція hello (). Цю ж форму звернення до функції можна використовувати для виклику функції з поля Адреса броузера. Якщо в це поле ввести ключове слово javascript: і ім'я функції, то відповідна функція виконається.

Обробники подій JavaScript

Обробники подій JavaScript представляють собою невеликі підпрограми, що зв'язують дії користувачів зі сценаріями, які необхідно виконати у відповідь на ці дії. До таких дій відносяться клацання мишею, натискання клавіш клавіатури, вибір або зміну елементів форми або навіть завантаження і вивантаження Web-сторінки. Обробники подій JavaScript можна помістити в дескриптори HTML так само, як і інші атрибути. Обробку події можна ототожнити з рядком програми JavaScript або з функцією JavaScript, оголошеної в деякому місці Web-сторінки. Наприклад, обробник події onclick можна ввести як атрибут дескриптора кнопки <button> і ототожнити з функцією blink наступним чином:

<button onclick= "blink ();"/ >

Даний дескриптор не тільки відображає в Web-сторінці кнопку. Після клацання на цій кнопці виконується функція blink () JavaScript. Існує близько десяти обробників подій JavaScript, які можна застосувати при формуванні Web-сторінки, помістивши їх у різні місця Web-сторінки в залежності від типу події. Деякі з найбільш поширених обробників подій JavaScript розглядаються в цьому розділі, в тому числі події, що генеруються мишею і клавіатурою, а також події вибору.

ПОДІЇ, що генеруються МИШЕЮ Події, що генеруються мишею, відбуваються в той момент, коли користувач клацає мишею або переміщує її. Якщо користувач клацає кнопкою миші один раз, спрацьовує обробник події onclick. Коли користувач робить подвійне клацання, спрацьовує обробник події ondblclick. Для більш тонкого управління можна скористатися обробниками події onmousedown, яке відбувається в той момент, коли кнопка миші натискається, і події onmouseup, яке відбувається при відпуску кнопки миші. Подія onmouseover сигналізує про те, що покажчик миші розташований на деякій елементі. Подія onmouseout відбувається тоді, коли вказівник переміщається з елемента.

ПОДІЇ, ЩО ГЕНЕРУЮТЬСЯ КЛАВІАТУРОЮ Подія onkeypress можна використовувати для визначення моменту, коли клавіша на клавіатурі натискається. Значення, відповідне самій клавіші, передається в об'єкт window. Event.keycode. За аналогією з клацанням кнопкою миші подія onkeydown спрацьовує після того, як клавіша натискається і утримується в натиснутому стані, а подія onkeyup сигналізує про те, що натиснута клавіша відпущена. ПОДІЇ ВИБОРУ Коли елемент у вікні броузера виділяється, кажуть, що він отримує фокус. Подія onfocus використовується для сигналізації про те, що елементу переданий фокус. Натиснувши клавішу <Таb>, можна змінити цей фокус. Коли елемент втрачає фокус, спрацьовує подія onblur. При виборі елемента спрацьовує подія onselect.

РІЗНОРІДНІ ПОДІЇ Ще одним поширеним подією, використовуваним при роботі з елементами форм, є подія onchange. Воно відбувається всякий раз, коли дані елемента форми змінюються. Обробник події onload використовується для встановлення моменту повного завантаження Web-сторінки. Аналогічно наступ події onunload свідчить про те, що Web-сторінка вивантажено. Це відбувається, коли користувач залишає поточну сторінку або клацає на кнопці броузера Оновити (Refresh). При скасуванні операції завантаження Web-сторінки в броузер викликається обробник події onabort. В HTML-формах є дві кнопки (субміт і reset), що виконують специфічні функції. Ці ж функції можна ініціювати за допомогою обробників подій onsubmit і onreset.