Показать сообщение отдельно
  #1 (permalink)  
Старый 05.02.2018, 19:11
Аспирант
Отправить личное сообщение для Andrew K Посмотреть профиль Найти все сообщения от Andrew K
 
Регистрация: 15.11.2014
Сообщений: 50

Прототипное наследование
Здравствуйте! Я работаю с прототипным наследованием и столкнулся с делеммой при задании свойства прототипа.

Есть объект parent и конструктор Child. Child использует parent как прототип. Если я задаю свойство в Child.prototype, то оно, естественно, появляется и в объекте parent:
let parent = { };

function Child() { }
Child.prototype = parent;

Child.prototype.num = 2;

let child = new Child();

console.log( parent.num ); // 2

Мне нужно чтобы я мог задавать свойства в прототипе, но при этом чтобы объект parent не изменялся. Конечно можно задать свойство как свойство объекта child:
function Child (){
    this.num = 2;
}

Но это не экономно по памяти если я создам множество объектов child. Поэтому я хочу, чтобы свойство бралось из прототипа, но при этом чтобы объект parent не изменялся.
Ответить с цитированием