Методы прототипа родителя не копируются в __proto__
.Свойство __proto__
является просто ссылкой на него.Вы можете доказать это, используя строгий оператор сравнения равенства JavaScript:
child.__proto__ === parent.prototype // true
Это точно такой же объект, а не копия оригинала.Если эта информация вас удивляет, учтите, что объекты в JavaScript хранятся по ссылке .Поэтому, если у вас есть такой объект:
const obj = {
prop: 'value'
};
И вы присваиваете этот объект другой переменной:
const obj2 = obj;
Нет двух отдельных объектов, скорее есть две переменные, каждая из которых имеетссылка на тот же объект.Ссылки не занимают пространство объекта, они просто указатели памяти.Другими словами, объект существует один раз, и есть две переменные со ссылками на него.