Possible answer, but answer shows what's observed but doesn't explain why it happens that way.
Let's create three function constructors.
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.
So after the last line I was expecting 'obj' to receive properties from prototype of C but it's not. So does it mean that once the object is created it is tied to whatever prototype it was assigned during creation ? Why is it that way, I mean I can receive live updates to object through the prototype but wouldn't it be better if can get updates from multiple objects just changing constructors prototype property ?