ECMAScript 6 (14) class

JavaScript语言中,生成实例对象的传统方式是通过构造函数。下面是一个例子。

以上的写作风格与传统的面向对象语言(如C语言和Java语言)大不相同,这很容易让不熟悉这种语言的程序员感到困惑。

ES6提供了一种更接近传统语言的写作风格,并引入了类的概念作为对象的模板。通过关键字,您可以定义类。

基本上,ES6可以被视为语法糖果,而ES5可以完成它的大部分功能。新的编写方法只会使对象原型的编写更清晰,更像面向对象编程的语法。上面的代码用ES6重写,如下所示。

以上代码定义了一个“类”。您可以看到里面有一个方法,它是构造方法,关键字表示实例对象。换句话说,ES5的构造函数对应于ES6类的构造函数。除了构造方法之外,

类还定义了一个方法。请注意,在定义“类”的方法时,您不需要在前面添加这个关键字,只需将函数定义放入。此外,不需要用逗号分隔方法,如果添加了错误,将会报告。

ES6的类可以被视为编写构造函数的另一种方式。

上面的代码显示了类的数据类型是一个函数,类本身指向构造函数。

使用时,它也直接在类上使用命令,与构造函数完全相同。

constructor的属性继续存在于ES6的“类”之上。事实上,类的所有方法都是根据类的属性定义的。

在类的实例上调用方法实际上是在原型上调用方法。

以上代码是类的一个实例,它的方法是类原型的方法。

因为类的方法都是在对象上定义的,所以类的新方法可以添加到对象上。方法可以很容易地一次向一个类添加多个方法。

object的属性直接指向“类”本身,这与ES5的行为是一致的。

此外,类中定义的所有方法都是不可枚举的。

在上面的代码中,方法是在类内部定义的方法,它是不可枚举的。这与ES5的行为不一致。

上面的代码是用ES5编写的,方法是可枚举的。

参考: