Встречается на собеседованиях • сегодня
В чем различия реализации ООП в JavaScript от других языков
Основное отличие ООП в JavaScript — прототипное наследование вместо классического. В JS объекты наследуют свойства и методы от других объектов через цепочку прототипов (__proto__), а не через классы (хотя синтаксис class добавлен в ES6 как синтаксический сахар).
Пример прототипного наследования:
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Ключевые отличия:
- Нет настоящих классов (до ES6)
- Динамическая природа — можно изменять прототипы и добавлять методы на лету
thisопределяется в момент вызова функции- Все объекты — ассоциативные массивы (ключ-значение)
- Множественное наследование сложно реализовать

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы