Наследование в JavaScript основано на прототипах. Каждый объект имеет внутреннее свойство [[Prototype]]
(доступное через __proto__
или Object.getPrototypeOf()
), которое указывает на другой объект.
При попытке обратиться к свойству или методу объекта, если оно не найдено непосредственно в объекте, JavaScript ищет его в [[Prototype]]
этого объекта, затем в [[Prototype]]
прототипа и так далее по цепочке прототипов, пока не достигнет конца (объекта Object.prototype
), у которого [[Prototype]]
равен null
.
Это и есть прототипное наследование.
Классы в ECMAScript 2015 (ES6) являются синтаксическим сахаром над прототипным наследованием. Они предоставляют более привычный синтаксис для работы с прототипами и создания иерархий объектов.
Пример использования прототипного наследования до ES6:
javascript
Наследование в JavaScript основано на прототипах. Каждый объект имеет внутреннее свойство [[Prototype]]
(доступное через __proto__
или Object.getPrototypeOf()
), которое указывает на другой объект.
При попытке обратиться к свойству или методу объекта, если оно не найдено непосредственно в объекте, JavaScript ищет его в [[Prototype]]
этого объекта, затем в [[Prototype]]
прототипа и так далее по цепочке прототипов, пока не достигнет конца (объекта Object.prototype
), у которого [[Prototype]]
равен null
.
Это и есть прототипное наследование.
Классы в ECMAScript 2015 (ES6) являются синтаксическим сахаром над прототипным наследованием. Они предоставляют более привычный синтаксис для работы с прототипами и создания иерархий объектов.
Пример использования прототипного наследования до ES6:
javascript
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.