面向对象知识(重写原型)

79 阅读1分钟

1、小知识 2、重写背景

3、解决方案

4、fun.prototype = new fun

分析: (1)先执行等号右边 new fun; 创建完实例之后,实例的__proto__属性指向之前的fun.prototype所对应的堆内存,所以这个内存并没有被释放,有人占用;

(2)目前fun.prototype指向的是新创建的实例

(3)新创建的实例对象的__proto__属性指向新创建的实例

(4)总结

(5)我们一般这样对原型链进行改变,extend为true代表是重构原型链 obj是我们要添加或者覆盖的属性;所以我们现在执行fun.prototype = new fun({a: 1},true)即可

之后创建别的实例对象我们就不需要这样传true,直接传false即可