Система уроків по javascript

вбудовані об'єкти

Вбудовані об'єкти зручні для виконання різних операцій з рядками, календарними датами, масивами, числами і так далі. Вони звільняють програміста від виконання різних рутинних операцій на зразок перетворення рядків або обчислення математичних функцій.

Як працювати з вбудованими об'єктами? Досить просто. Програма створює реалізації об'єктів, а потім звертається до властивостей і методів об'єктів. Як приклад, що має практичне значення, розглянемо документ HTML, в якому відображається поточна дата і час.

Лістинг 2.1.

Створюваний таким чином об'єкт Data инициализируется поточної локальної день, встановлений у користувача (а не на сервері Web, з якого був завантажений відповідний документ HTML). У наступному рядку формується текстовий рядок дати:

Значення календарного числа, номера місяця й року тут виходить за допомогою методів getDate, getMonth і getYear, відповідно. Ці методи викликаються для об'єкта dt, що містить поточну дату.

Текстовий рядок дати виводиться в документ HTML за допомогою методу write, визначеного в об'єкті document: Об'єкт Date містить також інформацію про поточний час. Ця інформація витягується для відображення за допомогою методів getHours, getMinutes і getSeconds (відповідно, години, хвилини і секунди): Подивитися приклад роботи даного скрипта

об'єкти браузера

Ієрархія об'єктів браузера

На малюнку схематично показана ієрархія об'єктів браузера.

Об'єкт window знаходиться в корені ієрархії. Коли в вікно браузера завантажується документ HTML, всередині цього об'єкту створюються інші об'єкти - document. parent. frame. location і top.

Якщо у вікно браузера завантажується документ HTML з фреймами, то для кожного фрейма створюється окреме вікно, причому це вікно створюється як об'єкт window.

Якщо в документі є форми, то вони також представляються у вигляді ієрархічного набору об'єктів. Об'єкт-форма може містити в собі такі об'єкти, як кнопки, перемикачі, поля для введення текстової інформації.

Події, пов'язані з об'єктами

Наприклад, з об'єктом window пов'язані події onLoad і onUnload. Перше з цих подій виникає, коли браузер завершує завантаження вікна і всіх розташованих в ньому фреймів (якщо ці фрейми визначені у вікні). Друга подія виникає, коли користувач завершує роботу з документом, закриваючи вікно браузера або перемикаючись на інший документ.

Об'єкти на базі класів, створюваних програмістом

Перш за все займемося створенням власного класу з назвою myRecord. Нехай поки в ньому не буде методів, додамо їх пізніше. Шуканий клас створюється наступним чином:

Неважко помітити, що опис даного класу є ні що інше, як функція конструктора.

Зверніть увагу, що конструктор ініціалізує властивість з ім'ям secure, записуючи в нього значення false. Відповідний параметр в конструкторі не передбачений, що цілком допустимо.

Об'єкти створюються за допомогою оператора new. Конструктору передаються параметри для ініціалізації властивостей створюваних об'єктів.

Що ж стосується властивості з ім'ям secure, то в об'єкті rec2 воно инициализируется вже після створення останнього. У нього записується значення true. Властивість secure об'єкта rec1 не змінюється, тому в ньому зберігається значення false.

Тепер додамо в певний клас нові методи з іменами printTableHead, printTableEnd і printRecord. Перші два з цих методів виводять в документ HTML, відповідно, початковий і кінцевий фрагмент таблиці, а третій - рядки таблиці, які відображають вміст записів. В скороченому вигляді нове визначення класу myRecord представлено нижче:

Тут перед визначенням конструктора розташовані визначення для функцій-методів нашого класу. Крім цього, в конструктор додано визначення нових властивостей: Ці властивості зберігають посилання на методи, визначені вище. Після такого визначення класу можна створювати об'єкти і звертатися до певних методів: Наведемо повний вихідний текст вийшов програми.

Лістинг 2.2.

Визначення нового класу myRecord і його методів розташоване в області заголовка документа HTML, як це прийнято робити.

Метод printTableHead виводить в документ HTML заголовок таблиці. Зовнішній вигляд цього заголовка залежить від вмісту властивостей об'єкта. Перш за все метод printTableHead перевіряє властивість secure, отримуючи його значення за допомогою ключового слова this:

Тут це ключове слово означає, що необхідно використовувати властивість того об'єкта, для якого був викликаний метод printTableHead. Якщо вміст властивості secure одно true, в текстову змінну szSec записується рядок "(Secure)". Якщо ж воно дорівнює false, в цю змінну заноситься рядок "(Unsecure)", причому для рядка встановлюється червоний колір.

Далі метод printTableHead виводить в документ HTML оператор

з параметром BORDER, з якого починається визначення таблиці, що має рамку. Напис над таблицею задається за допомогою динамічно формованого оператора
. В цей напис включається ім'я та прізвище, витягнуті з відповідних властивостей об'єкта, для якого був викликаний метод printTableHead. Потім цей метод виводить написи для стовпців таблиці.

Метод printTableEnd виводить в документ HTML оператор

, завершальний визначення таблиці, а також порожній параграф для відділення таблиць, наступних один за одним:

Останній метод, визначений в класі, називається printRecord. Він друкує вміст перших чотирьох властивостей об'єкта як рядок таблиці, визначеної в документі HTML щойно описаної функцією printTableHead. Зверніть увагу, що вміст властивостей об'єкта друкується похилим шрифтом, для чого ми викликаємо метод italics:

У другій частині сценарію, розташованої в тілі документа HTML, створюється два об'єкти rec1 і rec2 на базі класу myRecord, а потім встановлюється властивість secure об'єкта rec2 в стан true.

Далі сценарій послідовно виводить в документ HTML дві таблиці, відповідні створеним об'єктам, викликаючи для цього методи printTableHead, printRecord і printTableEnd.

Схожі статті