js有很多继承方法,其中比较得到认可的有两种:组合继承和寄生组合式继承。
组合继承(伪经典继承):
// 超类型
function SuperType(name) {
this.name = name;
}
SuperType.prototype.getName = function(){
return this.name;
};
// 子类型
function SubType(name, age) {
// SubType继承SuperType属性
SuperType.call(this, name, age);
// 子类型特有属性
this.age = age;
}
// SubType继承SuperType方法
SubType.prototype = new SuperType();
// 修改构造器指针
SubType.prototype.constructor = SubType;
// 子类型特有方法
SubType.prototype.getAge = function() {
return this.age;
}
var s = new SubType("小明", 20);
alert(s.getName()); //继承来的超类型方法
alert(s.getAge()); //子类型的特有方法