Встречается на собеседованиях • сегодня
Как реализовано наследование в JS
В JavaScript наследование реализовано через прототипы. Каждый объект имеет скрытое свойство [[Prototype]], которое ссылается на другой объект (прототип). При обращении к свойству/методу, если его нет в самом объекте, поиск продолжается в прототипе.
Основные способы:
- Через
__proto__(устаревший способ):
js
const parent = { name: 'Parent' };
const child = {};
child.__proto__ = parent;
console.log(child.name); // 'Parent'- Через
Object.create():
js
const parent = { name: 'Parent' };
const child = Object.create(parent);
console.log(child.name); // 'Parent'- Через конструкторы и
prototype:
js
function Parent() { this.name = 'Parent'; }
function Child() {}
Child.prototype = new Parent();
const child = new Child();
console.log(child.name); // 'Parent'- Современный ES6 class:
js
class Parent {
constructor() { this.name = 'Parent'; }
}
class Child extends Parent {}
const child = new Child();
console.log(child.name); // 'Parent'Прототипное наследование - это делегирование: объекты не копируют свойства, а ссылаются на них через цепочку прототипов.

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