1.es5中的类构造方法与原型链的构造
function person(){
this.name='张三'
this.age=14
var run=function(){ //构造方法
alert(this.name+'在运动')
}
}
//原型链
person.prototype.work=function(){
alert(this.name+'在工作')
}
var p=new person()
p.run() //弹出张三在运动
alert(p.age) //弹出18
p.work() //弹出 张三在工作
2.类的继承,冒充继承法,无法继承原型链的,只能继承构造类
function web(){
person.call(this)
}
var w=new web()
alert(w.name) //弹出张三
alert(w.run) //弹出undefined。无法继承原型链中的方法
3.类的继承,原型链的继承,当构造函数没有参数时候,这样继承可以继承构造方法和原型链方法,但当父类有参数需要传递时候,该方法就不能使用
function web(){
}
web.prototype=new person()
var w=new web()
w.work() //弹出张三在工作。能继承原型链
当父级有参数的时候,需要冒充继承法,原型链的继承共同结合
function person1(name,age){
this.name=name
this.age=age
this. run1=function(){
alert(this.name+'在跑步')
}
}
person1.prototype.work=function(){
alert(this.name+'在工作')
}
function web1(name,age){
person1.call(this,name,age)
}
web1.prototype=new person1()
var w1=new web1('李四',18)
w1.run1()
w1.work()