planetproto
Version:
A Workshop for understanding JavaScript prototypes
39 lines (26 loc) • 1.6 kB
Markdown
Контекст 'this'
-------------------
Якщо ми використовуємо `new` з функцією, JavaScript пов'язує новий об'єкт з ключовим словом `this` екземпляра Alien. Функція конструктор повертає (не явно) це посилання, якщо ви не повертаєте щось примусово:
Якщо ми робимо:
```js
function Alien() {
this.kind = 'alien';
}
var zippy = new Alien();
zippy.kind; //=> 'alien'
```
В JavaScript відбувається щось таке:
```js
function Alien() {
var this = {}; // не валідний JavaScript, лише для ілюстрації
this.__proto__ = Alien.prototype;
this.kind = 'alien';
return this;
}
```
Але, будьте уважні, `this` пов'язується лише при використанні `new`. В інших випадках `this` буде пов'язане з глобальним об'єктом. Для браузера це буде `window` Тому, це може призводити до помилок.
Популярним є використання заглавної першої литери в назві функції конструктора, напріклад `Alien`. Така домовленність дозволяє розділяти звичайні фнкції, та функції конструктори.
Завдання
---------
Дотримуйстесь інструкцій з файлу 090.js.
Цей файл вже створено для вас.