Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 5_6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
90.11 Кб
Скачать

Об'єкти користувача JavaScript

Хоча JavaScript не є повноцінною об’єктно-орієнтованою мовою, вона забезпечує механізм для інкапсуляції. Інкапсуляція (encapsulation) — це можливість приховання даних всередині об’єкта. У мові JavaScript можна створити екземпляр родового об’єкта (generic object) і призначити йому атрибути і навіть методи. Наприклад, у наступному фрагменті коду на JavaScript створюється екземпляр родового об’єкту з іменем cartLineItem (один з товарів у віртуальному кошику покупця). За допомогою оператора „крапка” (.) задаються значення чотирьох вказаних користувачем властивостей.

Приклад 5

LineItem= new Object();

LineItem.productID = ‘MG1234’;

LineItem.productName = ‘MGB Roadster (1935)’;

LineItem.qty =1;

LineItem.unitPrice =36000;

Екземпляр LineItem можна використовувати в подальшому в будь-якому сценарії JavaScript з відповідним посиланням:

alert( ‘В вашому кошику є ’ + cartLineItem.qty + ‘ ’ + LineItem.productName);

Для об’єктів можна також визначати методи. Наприклад, наступну функцію total() можна використовувати як метод. Вона звертається до свого об’єкту за допомогою оператора this:

function total(){ return (this.qty * this.unitPrice); }

Доступ до функції здійснюється таким же чином як і до атрибутів.

LineItem.total = total;

Тепер цю функцію можна викликати безпосередньо для об’єкта LineItem:

LineItem= new Object();

LineItem.productID = ‘MG1234’;

LineItem.productName = ‘MGB Mk I Roadster’;

LineItem.qty = 2;

LineItem.unitPrice = 12500;

LineItem.total = total;

document.write(‘<p>’ + LineItem.qty + ‘ ’ + LineItem.productName +‘стоит $’ + LineItem.total() + ‘</p>’);

Прототип в JavaScript нагадує конструктор в С++. Прототип (prototype) — це функція, що створює визначений користувачем об'єкт та ініціалізує його атрибути. Прототип для об’єкта JavaScript повинен також містити функції об’єкта. Прототип об’єкта cartLineItem повинен мати такий вигляд:.

function cartLineItem(id, name, qty, price){

this.productID = id;

this.productName = name;

this.qty = qty;

this.unitPrice = price;

this.total = total;

}

Якщо визначений прототип, то масив екземплярів LineItem можна створити за допомогою наступного фрагменту коду JavaScript:

var LineItem = new Array();

LineItem[0] = new cartLineItem (‘MG123’, ‘MGB Mk I Roadster’, 1, 36000);

LineItem[1] = new cartLineItem (‘AH736’, ‘Austin-Healey Sprite’, 1, 9560);

LineItem[2] = new cartLineItem (‘TS225’, ‘Triumph Spitfire Mk I’, 1, 11000);

Порядок виконання роботи

Проаналізувати умову задачі.

Виконати завдання згідно з завданням.

Результати роботи оформити звітом.

Завдання

1. Створити форму, яка міститиме наступні поля:

  • ім’я;

  • прізвище;

  • адреса, місто, країна та поштовий індекс;

  • адреса електронної пошти (e-mail).

2. Використовуючи JavaScript, виконати перевірку інформації, введеної в поля форми (e-mail на наявність символу @, ім’я та прізвище повинно містити лише літери, поштовий індекс повинен складатися з 5 цифр).

3. Реалізувати одну з наступних функцій (вибирається згідно з номером у списку)

3.1. Функція, що виводить перші 20 чисел послідовності Фібоначчі (елемент послідовності визначається як сума двох попередніх). Для виводу результатів використати функцію document.write().

3.2. Змінити завдання № 3.2 таким чином, щоб виводився n-й член послідовності Фібоначчі. Використати функцію prompt() для введення числа n.

3.3. Функція, що виводить слова заданого тексту у алфавітному порядку.

3.4. Функція, що виводить задану послідовність чисел в оберненому порядку.

3.5. Функція, що визначає найбільше значення серед заданих чисел.

3.6. Функція, що визначає найменше значення серед заданих чисел.

3.7. Вивести таблицю чисел від 5 до 15 та їх другий та третій ступені, використовуючи функцію alert().

3.8. Змінити сценарій завдання № 3.3 таким чином, щоб користувач міг вибрати, в якому порядку відсортувати слова (в спадному чи висхідному).

3.9. Створити функцію no_zeros(), аргументом якої є масив чисел, а результатом дії — модифікований вхідний масив, який не містить нульових значень.

3.10. Створити функцію e_names(), аргументом якої є масив слів, а результатом дії — кількість слів у вхідному масив, які закінчуються "ie" або "y".

3.11. Створити функцію first_vowel(), аргументом якої є рядок літер, а результатом дії — номер позиції, на якій знаходиться найлівіша гласна літера.

3.12. Створити функцію counter(), аргументом якої є масив чисел, а результатом дії — номера позицій, на яких знаходяться від’ємні елементи та нулі.

3.13. Створити функцію tst_name(), аргументом якої є текстовий рядок, а результатом дії — true, якщо рядок має вигляд: stringl, string2 letter, де string1 та string2 є слова, що складаються з літер нижнього регістру (за виключенням першої літери слова), letter складається з літер верхнього регістру, false — в протилежному випадку.

3.14. Створити функцію row_averages(), аргументом якої є масив масивів чисел (двовимірний масив), а результатом дії — масив, елементами якого є середні значення відповідних елементів вхідного масиву масивів чисел.

3.15. Створити функцію reverser(), аргументом якої є текстовий рядок, а результатом дії — відображення вхідного рядку у протилежному порядку.