Книга: JavaScript. Подробное руководство, 6-е издание
6.1.3. Прототипы
6.1.3. Прототипы
Прежде чем перейти к третьему способу создания объектов, необходимо сделать паузу, чтобы познакомиться с прототипами. Каждый объект в языке JavaScript имеет второй объект (или null
, но значительно реже), ассоциированный с ним. Этот второй объект называется прототипом, и первый объект наследует от прототипа его свойства.
Все объекты, созданные с помощью литералов объектов, имеют один и тот же объект-прототип, на который в программе JavaScript можно сослаться так: Object.prototype
. Объекты, созданные с помощью ключевого слова new
и вызова конструктора, в качестве прототипа получают значение свойства prototype
функции-конструктора. Поэтому объект, созданный выражением new Object()
, наследует свойства объекта Object.prototype
, как если бы он был создан с помощью литерала в фигурных скобках {}
. Аналогично прототипом объекта, созданного выражением new Array(),
является Array.prototype
, а прототипом объекта, созданного выражением new Date(),
являетсяDate.prototype
.
Object.prototype
- один из немногих объектов, которые не имеют прототипа: у него нет унаследованных свойств. Другие объекты-прототипы являются самыми обычными объектами, имеющими собственные прототипы. Все встроенные конструкторы (и большинство пользовательских конструкторов) наследуют прототип Object.prototype
. Например, Date. prototype
наследует свойства от Object.prototype
, поэтому объект Date
, созданный выражением new Date(),
наследует свойства от обоих прототипов, Date.prototype
и Object.prototype
. Такая связанная последовательность объектов-прототипов называется цепочкой прототипов.
Описание механизма наследования свойств приводится в разделе 6.2.2. Как получить ссылку на прототип объекта, рассказывается в разделе 6.8.1. А в главе 9 более детально будет обсуждаться связь между прототипами и конструкторами: там будет показано, как определять новые «классы» объектов посредством объявления функций-конструкторов и как записывать ссылку на объект-прототип в их свойство prototype для последующего использования «экземплярами», созданными с помощью этого конструктора.
- 9.1. Классы и прототипы
- Прототипы – это опора программистов
- Прототипы
- 3.4.3. Прототипы функций
- 11 Прототипы и памятные записки
- Для чего создаются прототипы
- Как использовать прототипы
- Как не надо использовать прототипы
- Правило 21. Визуализируйте идеи – создавайте эскизы, модели и прототипы
- Прототипы – ваши друзья
- С чего начинаются прототипы?
- Прототипы для проектов без пользовательского интерфейса