Можете объяснить, каким образом реализовано прототипное наследование в JavaScript?
Ответ от нейросети
sobes.tech AI
Прототипное наследование в JavaScript основано на том, что объекты могут наследовать свойства и методы от других объектов через цепочку прототипов.
Каждый объект имеет скрытое свойство [[Prototype]] (доступно через proto или Object.getPrototypeOf), которое указывает на другой объект — прототип. Если при обращении к свойству оно не найдено в самом объекте, поиск продолжается в прототипе, затем в прототипе прототипа и так далее, пока не будет найдено или цепочка не закончится.
Пример:
const animal = {
eats: true
};
const rabbit = Object.create(animal);
rabbit.jumps = true;
console.log(rabbit.eats); // true — унаследовано от animal
console.log(rabbit.jumps); // true — собственное свойство
Здесь rabbit наследует от animal через прототип.
Также функции-конструкторы используют свойство prototype для задания прототипа создаваемых объектов:
function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
console.log('Hello, ' + this.name);
};
const alice = new Person('Alice');
alice.greet(); // Hello, Alice
Таким образом, прототипное наследование — это динамическая цепочка объектов, позволяющая повторно использовать свойства и методы без классов.