Middle
12
Расскажите про прототипы в JavaScript. В чём отличие prototype от __proto__?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В JavaScript прототипы — это механизм наследования объектов. Каждый объект имеет внутреннюю ссылку на другой объект — его прототип, откуда он может наследовать свойства и методы.
prototype— это свойство функции-конструктора, которое указывает на объект, используемый как прототип для всех объектов, созданных через этот конструктор с помощьюnew.__proto__— это внутреннее свойство (или геттер/сеттер), доступное у объектов, которое указывает на прототип конкретного объекта.
Пример:
function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
return `Hello, ${this.name}`;
};
const alice = new Person('Alice');
console.log(alice.__proto__ === Person.prototype); // true
Таким образом, prototype — это свойство функции, а __proto__ — ссылка на прототип у объекта. __proto__ показывает, откуда объект наследует свойства, а prototype определяет, что будет у наследников, созданных через конструктор.