构造函数继承

本文详细讲解了JavaScript中构造函数的继承方式,包括构造函数直接继承和原型链继承,以及Man类如何通过`apply`调用People父类的方法。重点介绍了`People`和`Man`类的实例化和属性继承情况。
摘要由CSDN通过智能技术生成

1.父级构造函数(父类)
     function People(name,age){
         this.name=name
         this.age=age
         this.work=function(){
             console.log('我在上班')
         }
     }
     //构造函数继承:把父类构造函数里面的属性和方法继承到子类里面,在子类的构造函数指定对象调用父类的构造函数,并且传递参数,缺点不能继承构造函数原型上的属性和方法
     People.prototype.eat=function(){
         console.log("吃饭")
     }
     //子集构建函数(子类)
     function Man(name1,age1,sex){
         //1.下面这种语法相当于在Man类定义一个属性name,而name并不是继承过来
         //this.name=name
         
         //2.调用父类的方法 创建出来的是People对象,而不是Man这个对象
         
         //new People()
         
         //3.既想调用父类得方法 又想父类得this是Man对象
         //apply()指定对象进行调用方法,this是Man得构建函数
         //参数1是指定的对象
         //参数2是一个数组结构,目的是为了向People传递参数
         People.apply(this,[name1,age1])//继承
         this.sex=sex//自己类的属性
         
     }
     var p1=new People("zds",40)//父类的对象
     console.log(p1.name)
     p1.work()
     p1.eat()
     console.log(p1)
     //构建函数的prototype的constructor属性等于构造函数本身
     console.log(People.prototype.constructor==People)
     
     
     //Man类继承People,把People里面的属性和方法继承过来
     var m1=new Man('zs',20'男')//子类的对象
     console.log(m1.name)
     console.log(m1.age)
     console.log(m1.sex)
     m1.work()
     //m1.eat() eat不是一个方法 eat没有被继承过来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值