Встречается на собеседованиях • сегодня

В чем разница между классовым и прототипным наследованием

Классовое наследование использует классы как шаблоны для создания объектов. Наследование происходит через цепочку классов (extends). В JS это синтаксический сахар над прототипами.

Прототипное наследование - объекты наследуют напрямую от других объектов через свойство __proto__. Каждый объект имеет скрытую ссылку на прототип.

Пример классового:

js
class Parent {
  greet() { return 'Hi' }
}
class Child extends Parent {}

Пример прототипного:

js
const parent = { greet: () => 'Hi' };
const child = Object.create(parent);

Ключевые отличия:

  1. В классах наследование декларативное, в прототипах - динамическое
  2. Классы имеют конструктор, статические методы
  3. Прототипы гибче - можно менять цепочку наследования в runtime
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы