定义类
- 类实际上是个“特殊的函数”,就像你能够定义的函数表达式和函数声明一样,类语法有两个组成部分:类表达式和类声明。
类声明
-
定义一个类的一种方法是使用一个类声明。要声明一个类,你可以使用带有class关键字的类名。
1
2
3
4
5
6class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
类表达式
-
一个类表达式是定义一个类的另一种方式。类表达式可以是被命名的或匿名的。赋予一个命名类表达式的名称是类的主体的本地名称。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15/* 匿名类 */
let Rectangle = class {
constructor(height, width) {
this.height = height;
this.width = width;
}
};
/* 命名的类 */
let Rectangle = class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
};
类体和方法定义
- 一个类的类体是一对花括号/大括号 {} 中的部分。这是你定义类成员的位置,如方法或构造函数。
严格模式
- 类声明和类表达式的主体都执行在严格模式下。比如,构造函数,静态方法,原型方法,getter和setter都在严格模式下执行。
构造函数
-
constructor
方法是一个特殊的方法,其用于创建和初始化使用class创建的一个对象。一个类只能拥有一个名为“constructor”
的特殊方法。如果类包含多个constructor
的方法,则将抛出 一个SyntaxError
。 -
一个构造函数可以使用
super
关键字来调用一个父类的构造函数。
静态方法
static
关键字用来定义一个类的一个静态方法。调用静态方法不需要实例化该类,但不能通过一个类实例调用静态方法。静态方法通常用于为一个应用程序创建工具函数。
1 | class Animal{ |