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没有被继承过来
构造函数继承
最新推荐文章于 2022-11-14 22:03:39 发布
本文详细讲解了JavaScript中构造函数的继承方式,包括构造函数直接继承和原型链继承,以及Man类如何通过`apply`调用People父类的方法。重点介绍了`People`和`Man`类的实例化和属性继承情况。
摘要由CSDN通过智能技术生成