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();
相关推荐
菩提小狗1 分钟前
第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器|小迪安全笔记|网络安全|
前端·安全·架构
ctrigger2 分钟前
监理工程师考试题型有哪些?4科题型+分值表
大数据·javascript·算法
咖啡の猫10 分钟前
Python集合生成式
前端·javascript·python
dazzle12 分钟前
计算机视觉处理(OpenCV基础教学(六):基于HSV颜色空间的目标颜色识别)
javascript·opencv·计算机视觉
2501_9462338915 分钟前
Flutter与OpenHarmony我的作品页面实现
android·javascript·flutter
QT 小鲜肉20 分钟前
【Linux命令大全】001.文件管理之mtoolstest命令(实操篇)
linux·运维·前端·笔记·microsoft
holeer23 分钟前
React UI组件封装实战——以经典项目「个人博客」与「仿手机QQ」为例
前端·javascript·react.js·ui·前端框架·软件工程
chilavert31830 分钟前
技术演进中的开发沉思-277 AJax :Calendar
前端·javascript·microsoft·ajax
chilavert31831 分钟前
技术演进中的开发沉思-276 AJax : Menu
javascript·ajax·交互
debug 小菜鸟31 分钟前
搭建web 环境的那些事
前端