1.原型链继承
子类型的原型为父类型的一个实例对象
让子类型的原型的constructor指向子类型
//父类型
function Supper(){
}
//子类型
function Sub(){
}
//将子类型原型为父类型的一个实例对象;
Sub.prototype = new Supper();
//让子类型的原型的constructor指向子类型
Sub.prototype.constructor = Sub;
2.借用构造函数实现继承(假的)
定义父类型的构造函数
定义子类型的构造函数
在子类型的构造函数中调用父类型构造
通过call方法调用函数
//父类型
function Supper(name,age){
this.name = name;
this.age = age;
}
//子类型
function Sub(name,age,sex){
Supper.call(this,name,age);
this.sex = sex
}
var s = new Sub('Jack',18,1)
console.log(s.name,s.age,s.sex); //Jack 18 1
组合继承
//父类型
function Supper(name,age){
this.name = name;
this.age = age;
}
//子类型
function Sub(name,age,sex){
Supper.call(this,name,age); //为了得到属性
this.sex = sex
}
//将子类型原型为父类型的一个实例对象;
Sub.prototype = new Supper(); //为了能看到父类型的方法
//让子类型的原型的constructor指向子类型
Sub.prototype.constructor = Sub;
var s = new Sub('Jack',18,1)
console.log(s.name,s.age,s.sex); //Jack 18 1