Мне трудно понять, почему я должен определять свойства класса конструктора или его объекта-прототипа.
Вот что я понимаю о прототипе
- объявление свойств в прототипах (вместо связанного родительского объекта) сохраняет производительность, поскольку у каждого дочернего объекта не будет собственной КОПИИ свойств родительского объекта.
Вопрос: Но я думал, что вы не можете копировать значения из не примитивных типов, т.е. объекты функций только передают ссылки ... и могут копировать только из примитивов?
** Означает ли это, если я наследую методы родителя, как показано ниже, я копирую ссылку на методы или фактически копирую? **
function Parent() {
this.name = "jeff";
}
var child = new Parent();
console.log(child.name); /// is copied from parent or the reference is copied??
В следующем примере я ссылаюсь на прототип ... верно?
Parent.prototype.age = 9;
child.age // I looks at the parent class, then reference to prototype.age.
**** Вопрос 2: ** Если я могу изменить prototype.age для определенного объекта, то я на самом деле скопировал значение правильно? Так в чем смысл, т. Е. **
child.age = 10; // changed the value for THIS object