> Куда записывается свойство при добавлении его в прототип объекта в JavaScript (JavaScript)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: IT-One

Стек: JavaScript

> Пример ответа

При добавлении свойства в прототип объекта в JavaScript оно записывается непосредственно в объект prototype функции-конструктора (или в __proto__ для литералов). Это свойство становится доступным всем экземплярам через цепочку прототипов, но не копируется в сами экземпляры - оно хранится в единственном экземпляре на уровне прототипа.

Пример:

JAVASCRIPT
function Animal(name) {
this.name = name;
}
Animal.prototype.sayHi = function() {
console.log('Hi from ' + this.name);
};
const cat = new Animal('Cat');
const dog = new Animal('Dog');
cat.sayHi(); // 'Hi from Cat' - метод берется из прототипа
console.log(cat.hasOwnProperty('sayHi')); // false - свойство не в самом объекте

Свойство sayHi хранится в Animal.prototype, а не в cat или dog. При обращении к нему JavaScript сначала ищет в собственном объекте, затем переходит по цепочке прототипов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью