ES6中实现继承

本篇文章主要说明在ES6中如何实现继承,学过java的小伙伴,对class这个关键字应该不陌生,ES6中也提供了class这个关键字作为实现类的语法糖,咱们一起实现下ES6中的继承。

实现思路

首先直接通过class来声明一个Teacther类,作为父类,之后在父类中声明constructor函数,用来对父类属性进行初始化,之后声明responsibility函数和teaching函数,如下图:

可以看到responsibility函数与其他函数的区别,它多了一个static关键字,效果就是responsibility函数可以不用借助实例,直接被类调用,如下图:

接下来声明一个Student类作为子类,通过extends关键字,对Teacher类进行继承,需要注意的在构造函数首行调用super(),可以理解为在子类构造函数调用this和返回对象之前,需要先执行父类的构造函数代码,同时声明studying函数,如下图:

上面的步骤完成之后,咱们实例化一个student对象,调用父类的方法执行正常,就说明在ES6中的继承完成。

完整代码

javascript 复制代码
class Teacher {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    static responsibility() {
        console.log("承担责任")
    }

    teaching() {
        console.log("教学")
    }
}

class Student extends Teacher{
    constructor(name, age, sno) {
        super(name, age);
        this.sno = sno;
    }

    studying() {
        console.log("学习")
    }
}

var stu1 = new Student("guanju", 18, 115);
stu1.studying();
stu1.teaching();
Teacher.responsibility();
Student.responsibility();
相关推荐
小李子呢0211几秒前
为什么会有react和vue这些框架的出现
前端·vue.js·react.js
军训猫猫头1 分钟前
7.带输入参数的线程启动 C# + WPF 完整示例
开发语言·前端·c#·.net·wpf
CodeSheep1 分钟前
同事偷偷给我介绍私活,说1万报酬全给我,结果甲方私下告诉我说,同事在当中白拿了2万,我觉得被耍了,媳妇却让我要知足,说我一点不亏
前端·后端·程序员
Betelgeuse763 分钟前
告别传统 ModelForm:用 React 与 DRF 打造现代化项目管理表单
前端·react.js·django·前端框架
IT_陈寒4 分钟前
SpringBoot这个"自动配置"差点让我加班到凌晨
前端·人工智能·后端
遗憾随她而去.6 分钟前
react学习(一)
javascript·学习·react.js
恋恋风尘hhh7 分钟前
文字点选验证码前端安全研究:以网易易盾(dun.163)为例
前端·安全
鹏程十八少7 分钟前
1.2026金三银四 Android Glide 23连问终极拆解:生命周期、三级缓存、Bitmap复用,大厂面试官到底想听什么?
android·前端·面试
hhhhhh_we7 分钟前
预颜美历:AI驱动的私人面部美学与皮肤全周期管理工具
前端·图像处理·人工智能·python·aigc
Cobyte8 分钟前
5.响应式系统比对:手写 React 响应式状态库 Mobx
前端·javascript·vue.js