一、组合继承
首先,从本质上来说,组合继承=原型链+构造函数继承。
1.原型和原型链的概念
每个构造函数内部会有一个prototype指针,指向一个原型对象,而这个原型对象同样也有一个constuctor指针指回构造函数。
当创建一个对象
2.原型链
优点:部分函数复用
缺点:(1)父类的所有属性和方法(不论私有属性还是共有属性)都被子类视为原型。(2)无法向父类传参
3.构造函数继承
优点:可以向父类传参
缺点:没用到原型链,也就无法实现函数复用
4.组合继承
私有数据通过构造函数继承,共有数据和方法通过原型链继承。
二、寄生组合式继承
首先,从本质来说,寄生组合式继承=原型式继承+寄生式继承。
1.原型式继承
2.寄生式继承
3.寄生组合式继承
三、组合继承VS寄生组合继承
其实组合继承和寄生组合继承只有一个区别,子类的原型是否直接继承父类的原型,而这个寄生组合继承的这个改进,目的是为了避免二次创建父类实例。
原文:https://www.cnblogs.com/yuxingguang/p/12670917.html