新增的 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);