Sobes.tech
Назад к вопросам
Middle
4

Как в JavaScript устроена система прототипов?

Компании, где спрашивали
Тензор

Ответ от нейросети

sobes.tech AI

В JavaScript система прототипов — это механизм наследования, при котором объекты могут наследовать свойства и методы от других объектов.

Каждый объект имеет внутреннее свойство [[Prototype]] (доступное через __proto__ или Object.getPrototypeOf), которое указывает на другой объект — прототип. Если при обращении к свойству объекта оно не найдено, поиск продолжается в прототипе, затем в прототипе прототипа и так далее, пока не будет достигнут null.

Это позволяет создавать цепочки прототипов и реализовывать наследование без классов (хотя в современных версиях JS есть синтаксис классов, под капотом он использует прототипы).

Пример:

const animal = {
  speak() {
    console.log('Animal speaks');
  }
};

const dog = Object.create(animal);
dog.bark = function() {
  console.log('Woof!');
};

dog.bark();    // Woof!
dog.speak();   // Animal speaks (унаследовано от animal)

Таким образом, прототипы позволяют объектам делиться поведением и свойствами, что является основой объектно-ориентированного программирования в JavaScript.