Почему иногда изменения "родительского" св-ва
prototype
функции-конструктора влияют на изменение
prototype
объекта-экземпляра, которое содержится в
__proto__
, а иногда нет?
То есть тут изменения "родительского"
prototype
никак не сказываются на "дочернем"
prototype
экземпляра:
function Rabbit() {}
Rabbit.prototype = {
eats: true
};
var rabbit = new Rabbit();
Rabbit.prototype = {};
alert( rabbit.eats ); //true - все работает без изменений
А тут происходит изменение "родительского" свойства - меняется "дочернее" свойство:
function Rabbit(name) {}
Rabbit.prototype = {
eats: true
};
var rabbit = new Rabbit();
Rabbit.prototype.eats = false;
alert( rabbit.eats ); //false - происходят изменения
Почему так происходит? В чем логика такого поведения?