js继承的六种方式
https://www.cnblogs.com/ranyonsue/p/11201730.html
- 原型继承
通过prototype指向继承父类
缺点:无法传参 继承单一 属性共享 - 借用构造函数继承 用.call()和.apply()将父类构造函数引入子类函数
缺点:只能继承父类的构造函数,无法复用 - 组合继承
结合原形和借用构造函数两种方式
缺点:调用了两次构造函数 - 原型式继承
用一个函数包装一个对象,然后返回这个函数的调用,这个函数就变成了个可以随意增添属性的实例或对象。object.create()就是这个原理。可用于对象的复制
缺点:所有实例都会继承父类的所有属性,且调用无法复制 - 寄生式继承
在原型式继承的基础上对子类自定义
缺点:不能复用 - 寄生组合式继承
通过原型式继承,和寄生式继承 解决了调用两次的问题,注意要修复construtor的指向。而包裹一层new F()主要是为了解决修改子类的原型和父类原型共享问题
网友评论