Possible answer, но ответ показывает, что наблюдается, но не объясняет, почему так происходит.Уточнение: Javascript прототип обновления путаницы
Давайте создадим три конструктора функций.
function A() {
}
function B() {
}
function C() {
}
C.prototype.nm = "C";
B.prototype = new A()
var obj = new B()
B.prototype = new C()
console.log(obj.nm); // prints, undefined.
Итак, после последней строки я ожидал, что «obj» получит свойства от прототипа C, но это не так. Значит ли это, что как только объект создается, он привязан к любому прототипу, который был назначен во время создания? Почему это так, я имею в виду, что я могу получать живые обновления объекта через прототип, но не лучше ли получить обновления из нескольких объектов, просто изменяя свойство прототипа конструкторов?
«Не было бы лучше, если бы вы могли получать обновления от нескольких объектов, просто изменяя свойство прототипов конструкторов» --- нет, это не так. – zerkms
@zerkms, поэтому, как только объект будет создан, он привязан к определенному прототипу и получит только обновления от этого прототипа и ничего больше. – Bhimsen
и это здорово. Именно так должен вести себя предсказуемый код. – zerkms