Встречается на собеседованиях • сегодня
Как работает наследование в JS
В JavaScript наследование реализовано через цепочку прототипов (prototype chain).
Основные моменты:
- Каждый объект имеет скрытое свойство
[[Prototype]], которое ссылается на его прототип - При обращении к свойству объекта, если его нет в самом объекте, поиск идет по цепочке прототипов
- Для установки прототипа используется
Object.create()или__proto__(устаревший способ)
Пример:
js
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 появился синтаксис классов, который упрощает наследование:
js
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise`);
}
}
class Dog extends Animal {
speak() {
super.speak();
console.log(`${this.name} barks`);
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы