'Функція прототип'
------------------------

Кожна функція в JavaScript має спеціальну властивість під назвою `prototype`.

```js
function Alien() {}

Alien.prototype;
```

Може здатися, що властивість `prototype` це не реальний прототип (`__proto__`) функції.

```js
Alien.__proto__ === Alien.prototype; //=> false
```

Це викликає платаницю у визначенні терміну 'прототип'.
Правильним буде називати властивість `prototype` як '__функція прототип__', а не як 'прототип'.

Ця властивість `prototype` буде вказувати на об'єкт, який буде назначено прототипом екземпляра в разі, якщо його створено за допомогою `new`.

Заплутано? Це краще показати на прикладі:

```js
function Alien(name) {
	this.name = name;
}

// функція Alien має властивість прототип
// ми можемо додати до функції прототипу
Alien.prototype.kind = 'alien';

// коли ми створимо новий об'єкт за допомогою 'new'
var zippy = new Alien('Zippy');

// __proto__ квазує на Alien.prototype
zippy.__proto__ == Alien.prototype; //=> true

// в новому об'єкті ми маємо доступ до властивостей. що були у Alien.prototype
zippy.kind; //=> alien
```

Тут [діаграма показє відносини](https://docs.google.com/drawings/d/1AKJcvxs0t3iGtqkRV8rFAWlo7tojkOSwjfhr1NWaTb0/pub?w=889&h=482).

Таким чином, якщо ви створите два екземпляра `Alien`, обидва матимуть `Alien.prototype` в `__proto__`. Тобто, будуть використовувати його сумісно.

Це найважливіше, що ви маєте знати про об'єктну модель JavaScript. 
Розуміння того, як пов'язані між собою `__proto__` та `function.prototype` зробить вас щасливим.
А може й ні :).

Завдання
---------

Дотримуйстесь інструкцій з файлу 100.js. 
Цей файл вже створено для вас.
