Sobes.tech
Назад к вопросам
Junior — Middle
65

Можете объяснить, каким образом реализовано прототипное наследование в 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

Таким образом, прототипное наследование — это динамическая цепочка объектов, позволяющая повторно использовать свойства и методы без классов.