Об’єкт в javascript, функція-конструктор і прототип

контент переїхав з фрагментів в статті

Об'єкт в javascript, функція-конструктор і прототип
За допомогою оператора new можна створити об'єкт (об'єкт Function).
За оператором new необхідно вказати ім'я функції-конструктора; дана функція-конструктор виконує ініціалізацію властивостей об'єкта.
У функцію-конструктор передається ключове слово this. яке посилається на щойно створений об'єкт.

Прототип - це значення властивості prototype функції конструктора. Кожна функція має властивість prototype. дане властивість посилається на визначений об'єкт-прототип. Цей об'єкт працює тільки в тому випадку, якщо функція використовується як конструктор, тобто спільно з оператором new.

Кожен об'єкт має властивість constructor; це властивість посилається на функцію-конструктор, яка, як говорилося вище, виконує ініціалізацію властивостей об'єкта.

Як бачите, властивість r_method завжди посилається на незмінну (на відміну від властивостей, які є унікальними для кожного об'єкта) функцію. Тому раціональніше додати її до прототипу. Ми можемо зробити простий висновок: об'єкт-прототип підходяще місце для констант і методів. Так як будь-який об'єкт успадковує властивості свого прототипу, то наша функція (r_method) автоматично додасться всіх об'єктах, ініціалізувати конструктором (example_constr).

Призначення конструктора - створити новий об'єкт, встановити і повернути його в якості значення конструктора.

Ім'я конструктора зазвичай є іменником, пишеться з великої літери і описує конструюються об'єкт. Конструктори, як правило, використовують для створення об'єктів, що відповідають одним шаблоном.

Приклад створення об'єкта,
визначення конструктора,
і установка властивості для прототипу:

доповнення:
Щоб створити власний конструктор, досить описати функцію, в якій ключове слово this буде посилатися на об'єкти (які створюються за допомогою функції конструктора). Дивіться вище на прикладі example_constr.

console.dir

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

При використанні new в функції-конструкторі return може повернути тільки об'єкт, причому цей об'єкт замінить повертається за замовчуванням об'єкт this.

Приватний змінні і функції

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