寄生组合式继承
Posted dianzan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寄生组合式继承相关的知识,希望对你有一定的参考价值。
function inherObj(o){ function F(){} F.prototype=o; return new F(); } function inherPro(SubClass,SuperClass){ var p = inherObj(SuperClass.prototype);
//这一步是为了把构造函数指向SubClass实际对象 p.constructor = SubClass; SubClass.prototype=p; } var book={ name:‘js book‘, alikeBook:[‘css book‘,‘html book‘] }; function SuperClass(name){ this.name=name; this.colors=[‘red‘,‘blue‘,‘green‘]; } SuperClass.prototype.getName=function(){console.log(this.name)}; function SubClass(name,time){ SuperClass.call(this,name); this.time=time; } inherPro(SubClass, SuperClass);//这一步就是用SubClass的原型去继承SuperClass的原型,继承的核心代码 SubClass.prototype.getTime=function(){ console.log(this.time); }
//如果子类想重写父类,那就自己覆盖父类同名属性
// SubClass.prototype.getName = function () { console.log(this.name,‘重写‘) };
var ins1 = new SubClass(‘js book‘, 2014); var ins2 = new SubClass(‘css book‘,2013);
与java逻辑相同
就是继承父类,然后子类可以扩展父类
https://www.cnblogs.com/aaronchu/p/6168378.html
以上是关于寄生组合式继承的主要内容,如果未能解决你的问题,请参考以下文章
JSJavaScript继承 - 原型链 - 盗用构造函数 - 组合继承 -原型式继承 - 寄生式继承 - 寄生式组合继承
Javascript继承6:终极继承者----寄生组合式继承