修改原型链之后,旧对象仍旧指向原先的原型链

function Obj() {
    this.name = 'azoux';
}

const my = new Obj();
console.log(my);

Obj.prototype = Array.prototype;
Array.prototype.coco = 1;

console.log(my.coco); // undefined
const my2 = new Obj();
console.log(my2.coco); // 1
console.log(my instanceof Obj) // false

在修改构造函数的prototype后,修改前创建的对象仍旧指向原先的prototype
刚开始遇到的时候仍旧觉得有些奇怪,后面想了想,创建对象时,对象中的__proto__属性也只是原先prototype引用的浅拷贝,这是在创建对象时就确定的了。

posted @ 2022-03-26 13:01  azoux  阅读(30)  评论(0编辑  收藏  举报