This commit is contained in:
qianguyihao 2021-05-25 12:57:19 +08:00
parent 401d3ac906
commit 4d0f2c3e16

View File

@ -128,13 +128,13 @@
这种继承方式**Child 可以继承 Parent 的原型**但有个缺点
缺点是**如果修改 child1实例的name属性child2实例中的name属性也会跟着改变**
缺点是**如果修改 child1实例的对象属性child2实例中的对象属性也会跟着改变**
如下
![](http://img.smyhvae.com/20180307_1123.png)
上面的代码中 child1修改了arr属性却发现child2的arr属性也跟着改变了这显然不太好在业务中两个子模块应该隔离才对如果改了一个对象另一个对象却发生了改变就不太好
上面的代码中 child1修改了arr属性arr属于引用数据类型却发现child2的arr属性也跟着改变了当然了基本数据类型 name 不会发生变化这显然不太好在业务中两个子模块应该隔离才对如果改了一个对象另一个对象却发生了改变就不太好
造成这种缺点的原因是child1和child2共用原型`chi1d1.__proto__ === child2__proto__`是严格相同 arr方法是在 Parent 的实例上 Child实例的原型
@ -168,10 +168,5 @@
```javascript
```
ES6中的继承方式一带而过即可重点是要掌握ES5中的继承