1)原型链继承
优点:可以继承所有
缺点:不能给父类传参
写法:
1.创建父类构造函数
2.创建子类
3.子类.prototype=new 父类()
4.实例化 子类 得到对象
function Fu(行参){
this.属性=参数;
}
Fu.prototype.say=function(){}
function Zi(){}
Zi.prototype=new Fu(实参)
var obj=new Zi()
var obj1=new Zi()
2)类式继承 / 借用构造函数继承 / 改变this指向继承
优点:可以给父类传参
缺点:不能继承父类的原型对象
写法:
1.创建父类
2.创建子类
3.子类内部 改变父类的this指向
4.实例化 子类 得到对象
function Fu(行参){
this.属性名=参数;
}
Fu.prototype.say=function(){}
function Zi(行参){
Fu.call(this,参)
}
var obj=new Zi(实参)
3)组合继承
原型链继承+借用构造函数继承
Zi.prototype=new Fu() + function Zi(){ Fu.call(this,参数) }
function Fu(name,age){
this.name=name;
this.age=age
}
Fu.prototype.say=function(){}
function Zi(name,age){
Fu.call(this,name,age)
}
Zi.prototype=new Fu()
var obj=new Zi(实参)