Skip to main content

新增的 Class 类

一、类的写法

ES5 构造函数的写法:

function Point(x, y) {
this.x = x;
this.y = y;
}

ES6 引入了 Class(类),通过 class 关键字,可以定义类。

class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
}

这里,ES6 的 Point 类的构造方法对应 ES5 的构造函数 Point,代码中的 constructor 是构造方法。

二、constructor

constructor 是类的默认方法,通过 new 命令生成对象实例时,自动调用该方法。

一个类必须有 constructor 方法,如果没有显式定义,一个空的 constructor 方法会被默认添加:

class Point {
}

// 等同于
class Point {
constructor() { }
}

三、类的实例

ES6 生成类的实例与 ES5 一样,也是用 new 命令。

但构造函数的实例不用 new 也可以执行,而类必须用 new,否则会报错:

class Point {
// ...
}

// 报错
var point = Point(2, 3);

// 正确
var point = new Point(2, 3);

四、类的继承

「点击查看 ES6 Class extends 继承」