本质上,类只是一种特殊的函数。
声明类 class
方式 1 – 类声明
方式 2 – 类表达式
匿名式
命名式 —— 类名称在表达式定义的内部有效,在外部无法使用
构造函数 constructor
每个类只能存在一个,在构造器中可以通过super()方法来调用其父类的构造器。
类的属性(原型方法)
支持表达式命名,以下三种效果相同:
类的修饰符
- get 获取类的属性值
- set 修改类的属性值
使用类 new
类的继承 extends
- 子类内通过 super 调用父类
在子类的构造器中,必须先调用super()方法才能正确地获取到this关键字
子类中,如果定义了构造器,则必须在其中调用super()方法,否则会报错
- 父类默认构造器
- 子类默认构造器
多重继承
JavaScript本身不支持多重继承,在ES6中实现mixin的一种比较流行的实现方式是编写输入为父类输出为子类的函数,例如:
Employee类依次顺序继承了BackgroundCheck类、Onboard类和Person类。
类和普通函数的区别
- 类必须先声明,再使用
- 普通函数可用先使用,再声明
【面试题】手写 class