ES6 class基本使用
时间: 2024-05-03 19:21:11 浏览: 133
es6入门基础
ES6 class是一种用于定义对象的语法糖,它可以更方便地定义类和继承。
1. 定义类
要定义一个类,可以使用class关键字,后面跟类名,类名通常首字母大写。
```javascript
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
}
```
上面的代码定义了一个名为Person的类,它有一个构造函数和一个方法sayHello。构造函数接受两个参数name和age,用于初始化对象的属性。sayHello方法用于输出对象的名字。
2. 创建对象
要创建一个类的对象,可以使用new关键字,并传入构造函数需要的参数。
```javascript
const person = new Person('Tom', 18);
console.log(person.name); // 'Tom'
console.log(person.age); // 18
person.sayHello(); // 'Hello, my name is Tom.'
```
上面的代码创建了一个名为person的对象,它的名字是Tom,年龄是18,然后调用了它的sayHello方法输出了自己的名字。
3. 继承
要继承一个类,可以使用extends关键字,并指定父类的名称。
```javascript
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
study() {
console.log(`I'm studying in grade ${this.grade}.`);
}
}
```
上面的代码定义了一个名为Student的类,它继承自Person类。Student类有一个构造函数和一个方法study。构造函数接受三个参数name、age和grade,其中前两个用于初始化父类的属性,后一个用于初始化自己的属性。study方法用于输出学生的年级。
4. 调用父类方法
在子类中,可以使用super关键字调用父类的方法或属性。
```javascript
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
sayHello() {
super.sayHello();
console.log(`I'm a student in grade ${this.grade}.`);
}
}
```
上面的代码重新定义了Student类的sayHello方法,并在其中调用了父类的sayHello方法。这样,每次调用子类的sayHello方法时,都会先输出父类的信息,然后再输出子类的信息。
5. 静态方法
类中可以定义静态方法,通过类名调用,而不是通过对象调用。
```javascript
class Calculator {
static add(a, b) {
return a + b;
}
static subtract(a, b) {
return a - b;
}
}
```
上面的代码定义了一个名为Calculator的类,它有两个静态方法add和subtract,用于执行加法和减法运算。这些方法可以直接通过类名调用,而不需要先创建对象。
```javascript
console.log(Calculator.add(1, 2)); // 3
console.log(Calculator.subtract(3, 2)); // 1
```
上面的代码分别调用了Calculator类的add和subtract方法,输出了它们的计算结果。
阅读全文