Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
qianguyihao committed May 25, 2021
1 parent 401d3ac commit 4d0f2c3
Showing 1 changed file with 2 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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实例的原型)的。

Expand Down Expand Up @@ -168,10 +168,5 @@



```javascript
```


ES6中的继承方式,一带而过即可,重点是要掌握ES5中的继承。

0 comments on commit 4d0f2c3

Please sign in to comment.