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

В чем разница между ООП в JavaScript и ООП без прототипов

В JavaScript ООП реализовано через прототипное наследование, а не через классы (как в Java, C++).

  • Классы в JS – синтаксический сахар над прототипами.
  • Прототипное наследование – объекты наследуют свойства и методы от других объектов через цепочку __proto__.
  • Классическое ООП использует жесткие классы, интерфейсы, абстракции.

Пример прототипного наследования:

javascript
function Animal(name) {
  this.name = name;
}
Animal.prototype.speak = function() {
  console.log(`${this.name} makes a noise.`);
};

function Dog(name) {
  Animal.call(this, name);
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

const dog = new Dog('Rex');
dog.speak(); // "Rex makes a noise."

В классическом ООП классы определяют структуру заранее, а в JS объекты могут динамически менять прототипы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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