Javascript之原型继承和class类继承

一、原型继承

先创建一个构造函数Person,添加属性原型添加方法

function Person(name,age) {
  this.name = name
  this.age = age
}

Person.prototype.getName = function () {
  return this.name
}

再创建一个构造函数Student 并且调用Person构造函数

function Student(name,age,className) {
  Person.call(this,name,age)
  this.className = className
}

这里要先继承Person的实例,再给Student原型添加方法

Student.prototype = new Person()

Student.prototype.getClassName = function () {
  return this.className
}

最后实例化,完美继承了Person的属性/原型,同时拥有自己的原型方法

let student = new Student('小二',13,'一年级')

console.log(student.getName()) // 小二
console.log(student.getClassName()) // 一年级

二、class

创建Person 构造函数 ,添加赋值属性,原型添加方法

class Person {
  constructor(name,age){
    this.name = name
    this.age = age
  }
  getName(){
    return this.name
  }
}

创建Student构造函数,并且继承Person (super构造函数)

class Student extends Person{
  constructor(name,age,className){
    super(name,age)
    this.className = className
  }
  getClassName(){
    return this.className
  }
}

完美继承Person属性 原型方法

let student = new Student('小二',13,'一年级')

console.log(student.getName()) // 小二
console.log(student.getClassName()) // 一年级
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小小白zyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值