构造函数继承 原型链继承 ES6类的声明及继承


构造函数继承

//通过构造函数创建父类
function People(name,age)
{
  this.name = name 
  this.age = age
}
//通过构造函数的prototype添加函数
People.prototype.say = function(content)
{
  console.log(this.name + "说:" + content)
}
var p1 = new People("张三",22)
p1.say("hello!")
//创建构造函数子类
function Man(name , age , sex)
{
//子类自定义属性
    this.sex = sex
    People.apply(this,[name,age])
}
	// 把父类的原型链赋值给子类,可以实现原型链继承
		// 用父类的原型对象创建一个临时对象,赋值给子类
	Man.prototype = new Object(People.prototype)
	// 一个类型的构造函数必须指向本身,通过原型继承,子类的构造函数指向了父类的构造函数
		// 纠正子类构造函数的指向,让它指向自己
	Man.prototype.constructor = Man
var m = new Man ("李四",23,"男")
m.say("你好")


ES6类的声明及继承

在ES6中,class关键字用来定义类,关键字后跟类名
{}是类的属性和方法,属性要放在构造函数constructor中
class People{
   constructor(name, age , phone)   {
    this.name= name
    this.age = age 
    this.phone = phone
}
在ES6类的方法, 定义风格发生了变化, 会将函数添加到原型对象中
 say(content)
 {
 console.log(this.name)
 }
}
var p1 = new People("张三",33, 110)
p1.say("我是单身啊")

// extends 扩展 继承People类的属性和方法
class Man extends People{
     constructor(name,age,phone,sex)
     {
     //super() 可以调用父类的构造函数
     super(name , age , phone)
     this.sex = sex
}
}

//声明一个类的实例对象,先调用本类中的构造函数, 如果类有继承关系,构造函数的执行顺序
// 类 在new的时候会自定自己的构造函数,如果类继承了其他类,会从自身的构造函数中通过super取调用父类中构造函数,先把父类中的构造函数执行完(初始值),在回到自己的构造函数中执行初始化

// Object构造函数=>父类的父类(....)=>父类构造函数=>类本身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值