ES6 如何创建类
编程中的Class(类) 是创建对象的蓝图或模板,每个对象代表一个可区分的现实世界实体。换句话说,我们可以说它是某些对象组的集合。在ES6中,类可以通过在类名前写下class关键字来简单创建。在本文中,我们将讨论类的一般概念及其语法,以及相关示例。
让我们看一下下面的部分,其中介绍了一些事实,包括在ES6中有两种创建类的方法,一种是在类定义前写下class关键字,另一种是将类表达式赋值给变量。
方法1:类声明 在这种方法中,我们只需编写代码,并将关键字class作为类名的前缀。始终首字母大写(不要小写)。
语法:
class ClassName {
// Definition and code
}
示例:
- 在这个示例中,我们声明了一个类,并在其中定义了两个getter和setter方法(或函数)及一个构造函数。
- 然后在类声明的外部,我们通过向构造函数提供半径来创建了该类的一个对象,并在下一行中简单地提取了圆的面积属性。
注意:
- ES6有不同种类的特殊语法创建getter和setter。首先我们写上get或set关键字,然后是属性的名称。
- 在get的情况下,我们从该方法返回的任何内容都被视为该属性的值;而在set的情况下,我们提供的任何参数都可以被设置为构造函数中写入的任何属性。
- 在属性之前加上下划线是为了避免命名冲突,否则它会一次又一次地调用相同的函数。
- 避免在getter方法后面加上括号,因为这会引发一个错误,认为该函数未定义,因为它被视为对象的属性。
Javascript
class Circle {
constructor(radius) {
this.radius = radius;
}
get radius() {
return this._radius;
}
set radius(r) {
this._radius = r;
}
get area() {
return ((22/7)*this.radius*this.radius);
}
}
let myCircle = new Circle(5);
console.log(myCircle.area);
输出:
78.57142857142857
方法2:类表达式在这种方法中,我们编写类定义并将其分配给某些变量,它可以是命名类或无名类的两种类型之一。
语法:
const VariableName = class ClassName {
// Definition and code
}
const VariableName = class {
// Definition and code
}
示例:
- 在这个示例中,我们将我们的类分配给一个变量,现在这个变量将被用来访问类,这是一个无名类,也可以在这里创建一个命名类,但没有太大的区别。
- 在类表达式中,我们声明了构造函数以及getter和setter。
- 稍后在类外面,有一个对象创建而没有初始化,然后我们通过setter设置半径,在最后一行我们通过getter访问面积属性,它返回计算得到的面积。
JavaScript
const Circle = class {
constructor(radius){
this.radius = radius;
}
get radius() {
return this._radius;
}
set radius(radius) {
this._radius = radius;
}
get area() {
return ((22/7)*this.radius*this.radius);
}
}
let myCircle = new Circle();
myCircle.radius = 3;
console.log(myCircle.area);
输出:
28.285714285714285