JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript ООП конструктори об'єктів


конструктори об'єктів

Крім створення нових об'єктів JavaScript надає нам можливість створювати нові типи об'єктів за допомогою конструкторів . Так, одним із способів створення об'єкта є застосування конструктора типу Object :

var tom = new Object();

Після створення змінної tom вона буде вести себе як об'єкт типу Object .

Конструктор дозволяє визначити новий тип об'єкту. Тип являє собою абстрактний опис або шаблон об'єкта. Можна ще провести наступну аналогію. У нас у всіх є деяке уявлення про людину - наявність двох рук, двох ніг, голови, травної, нервової системи і т.д. Є деякий шаблон - цей шаблон можна назвати типом. Реально ж існуюча людина є об'єктом цього типу.

Визначення типу може складатися з функції конструктора, методів і властивостей.

Для початку визначимо конструктор:

function User(pName, pAge) {
    this.name = pName;
    this.age = pAge;

    this.displayInfo = function(){
        document.write("Імя: " + this.name + "; вік: " + this.age + "<br/>");
    };

}

Конструктор - це звичайна функція за тим винятком, що в ній ми можемо встановити властивості і методи. Для установки властивостей і методів використовується ключове слово this :

this.name = pName;

В даному випадку встановлюються дві властивості name і age і один метод displayInfo .

Як правило, назви конструктора на відміну від назв звичайних функцій починаються з великої літери.

Після цього в програмі ми можемо визначити об'єкт типу User і використовувати його властивості та методи:

var tom = new User("Том", 26);
console.log(tom.name);          // Том
tom.displayInfo();

Щоб викликати конструктор, тобто створити об'єкт типу User , треба використовувати ключове слово new .

Подібним чином ми можемо визначити і інші типи і використовувати їх разом:

// конструктор Car
function Car(mName, mYear){

    this.name = mName;
    this.year = mYear;

    this.getCarInfo = function(){
        document.write("Модель: " + this.name + "  Год выпуска: " + this.year + "<br/>");
    };

};

// конструктор User
function User(pName, pAge) {

    this.name = pName;
    this.age = pAge;

    this.driveCar = function(car){
        document.write(this.name + " ведет машину " + car.name + "<br/>");
    };

    this.displayInfo = function(){
        document.write("Имя: " + this.name + "; возраст: " + this.age + "<br/>");
    };

};
 
var tom = new User("Том", 26);
tom.displayInfo();

var bently = new Car("Бентлі", 2004);
tom.driveCar(bently);

Оператор instanceof

Оператор instanceof дозволяє перевірити, за допомогою якого конструктора створено об'єкт. Якщо об'єкт створений за допомогою певного конструктора, то оператор повертає true :

var tom = new User("Том", 26);
 
var isUser = tom instanceof User;
var isCar = tom instanceof Car;

console.log(isUser);    // true
console.log(isCar);     // false

Наш партнер:
beta test mp3 playlist downloader