> Какой метод вызывается при наследовании, если метод определён в прототипе родителя и в экземпляре дочернего класса в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: НордКлан

Стек: JavaScript

> Пример ответа

При наследовании в JavaScript, если метод определён как в прототипе родителя, так и в экземпляре дочернего класса, вызывается метод из экземпляра дочернего класса. Это происходит из-за механизма цепочки прототипов (prototype chain): при обращении к свойству или методу объекта JavaScript сначала ищет его в самом объекте (собственные свойства), и только если не находит - переходит к прототипу (родительскому классу). Таким образом, метод, определённый непосредственно в экземпляре, переопределяет (shadowing) метод из прототипа.

Пример:

JAVASCRIPT
class Parent {
greet() {
console.log('Привет от родителя');
}
}
class Child extends Parent {
constructor() {
super();
this.greet = function() {
console.log('Привет от экземпляра');
};
}
}
const child = new Child();
child.greet(); // "Привет от экземпляра"

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью