> Какой метод вызывается при наследовании, если метод определён в прототипе родителя и в экземпляре дочернего класса в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: циан, Rutube
Стек: JavaScript
> Пример ответа
При наследовании в JavaScript, если метод определён как в прототипе родителя, так и в экземпляре дочернего класса, вызывается метод из экземпляра. Это происходит из-за механизма прототипного наследования: при обращении к свойству или методу объекта JavaScript сначала ищет его в самом объекте (собственные свойства), а затем поднимается по цепочке прототипов. Метод, определённый в экземпляре, является собственным свойством, поэтому он имеет приоритет над методом из прототипа родителя.
Пример:
JAVASCRIPTclass Parent {greet() {return 'Привет от родителя';}}class Child extends Parent {constructor() {super();this.greet = function() {return 'Привет от экземпляра';};}}const child = new Child();console.log(child.greet()); // "Привет от экземпляра"
Если бы метод не был определён в экземпляре, JavaScript пошёл бы по цепочке прототипов и вызвал бы метод из прототипа родителя.
> Похожие задачи по frontend
Изменяется ли исходный массив при вызове метода sort в JavaScript и почему
Как отлавливать ошибки промисов в JavaScript
Какая конструкция может использоваться вместе с try-catch в JavaScript
Что такое NaN и в каких случаях он возникает
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью