寄生组合式继承
Posted jokes
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寄生组合式继承相关的知识,希望对你有一定的参考价值。
实例1:
function SuperType(name){ this.name = name; this.colors = [‘red‘,‘green‘,‘blue‘]; } SuperType.prototype.sayName = function(){ console.log(this.name); } function SubType(name,age){ SuperType.call(this,name); this.age = age; } function inheritPrototype(SubType,SuperType){ SuperType.prototype.constructor = SubType;//把上边的两个函数合并 SubType.prototype = SuperType.prototype; } /** 公用的构造函数 function SubType(name,age){ this.name = name; this.colors = [‘red‘,‘green‘,‘blue‘]; this.age = age; } */ inheritPrototype(SubType,SuperType); SubType.prototype.sayAge = function(){ console.log(this.age); } var p1 = new SubType(‘zhangsan‘,89); p1.sayName(); p1.sayAge(); console.log(p1.colors); console.log(p1);
这个是利用call()和SuperType.prototype.constructor = SubType;//把上边的两个函数合并函数公用一个构造函数
以上是关于寄生组合式继承的主要内容,如果未能解决你的问题,请参考以下文章
JSJavaScript继承 - 原型链 - 盗用构造函数 - 组合继承 -原型式继承 - 寄生式继承 - 寄生式组合继承
Javascript继承6:终极继承者----寄生组合式继承