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即可