es5中类的继承方法

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值