diff --git "a/14-\345\211\215\347\253\257\351\235\242\350\257\225/05-02.\351\235\242\345\220\221\345\257\271\350\261\241\357\274\232\347\261\273\347\232\204\345\256\232\344\271\211\345\222\214\347\273\247\346\211\277\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217.md" "b/14-\345\211\215\347\253\257\351\235\242\350\257\225/05-02.\351\235\242\345\220\221\345\257\271\350\261\241\357\274\232\347\261\273\347\232\204\345\256\232\344\271\211\345\222\214\347\273\247\346\211\277\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217.md" index 61dd2080..38d165b4 100644 --- "a/14-\345\211\215\347\253\257\351\235\242\350\257\225/05-02.\351\235\242\345\220\221\345\257\271\350\261\241\357\274\232\347\261\273\347\232\204\345\256\232\344\271\211\345\222\214\347\273\247\346\211\277\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217.md" +++ "b/14-\345\211\215\347\253\257\351\235\242\350\257\225/05-02.\351\235\242\345\220\221\345\257\271\350\261\241\357\274\232\347\261\273\347\232\204\345\256\232\344\271\211\345\222\214\347\273\247\346\211\277\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217.md" @@ -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中的继承。