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

Как реализовано наследование в JS

В JavaScript наследование реализовано через прототипы. Каждый объект имеет скрытое свойство [[Prototype]], которое ссылается на другой объект (прототип). При обращении к свойству/методу, если его нет в самом объекте, поиск продолжается в прототипе.

Основные способы:

  1. Через __proto__ (устаревший способ):
js
const parent = { name: 'Parent' };
const child = {};
child.__proto__ = parent;
console.log(child.name); // 'Parent'
  1. Через Object.create():
js
const parent = { name: 'Parent' };
const child = Object.create(parent);
console.log(child.name); // 'Parent'
  1. Через конструкторы и prototype:
js
function Parent() { this.name = 'Parent'; }
function Child() {}
Child.prototype = new Parent();
const child = new Child();
console.log(child.name); // 'Parent'
  1. Современный ES6 class:
js
class Parent {
  constructor() { this.name = 'Parent'; }
}
class Child extends Parent {}
const child = new Child();
console.log(child.name); // 'Parent'

Прототипное наследование - это делегирование: объекты не копируют свойства, а ссылаются на них через цепочку прототипов.

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

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

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

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