emmm…一直一来对继承方式都搞不懂,感觉绕来绕去的好乱,今天决定逐个突破 😶。
看了各种继承方式的比较,寄生组合式继承是比较理想的,因为相对来说操作较少且弥补了寄生继承和组合继承的缺点,既可以函数复用,也不用多次调用父类构造函数。
寄生组合式继承顾名思义就是寄生式继承和组合式继承结合使用,下面以代码形式展示该继承的特点。
function Parent() {}
function Child() {}
Parent.prototype.src = 'I am from parent.';
Parent.prototype.commonFunc = function () {
console.log('This is common.');
};
function inherit(Parent, Child) {
var prototype = Object.create(Parent.prototype);
prototype.constructor = Child; // 取代:Child.prototype.constrcutor=Child
Child.prototype = prototype; // 取代:Child.prototype=new Person();
}
inherit(Parent, Child);
var child = new Child();
child.commonFunc(); // output: This is common.
console.log(child.src); // output: I am from parent.