Sobes.tech
Middle
25

Реци о прототиповима у JavaScript. У чему се разликује prototype од __proto__?

Компаније где су питане
AstonAston

Одговор од АИ

sobes.tech АИ

В 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 определяет, что будет у наследников, созданных через конструктор.