面向对象的程序设计(六)组合继承
//组合继承(有时候也较伪经典继承):将原型链和借用构造函数的技术组合到一块 //思路:借用构造函数继承属性、原型链继承方法。避免了借用构造函数的原型方法不可复用,只有构造函数的属性可以复用的弊端 function SuperType(name) { this.name = name; this.colors = ["red", "blue"]; } SuperType.prototype.sayName = function () { alert(this.name); } function SubType(name, age) { //继承了SuperType2同时还传递了参数 SuperType.call(this, name); //SuperType2.apply(this, [name]); this.age = age; } SubType.prototype = new SuperType(); SubType.prototype.sayAge = function () { alert(this.age); } var instance1 = new SubType("Tom", "20"); instance1.colors.push("black"); alert(instance1.colors); instance1.sayName(); instance1.sayAge(); var instance2 = new SubType("Lucy", "25"); alert(instance2.colors); instance2.sayName(); instance2.sayAge();
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步