ES6的类(class)是一种面向对象编程的概念,它提供了一种更加简洁和清晰的方式来创建对象和处理继承。与传统的构造函数相比,类具有更好的可读性和可维护性。
区别:
- 语法不同:类使用关键字
class
定义,而构造函数使用函数定义。 - 继承方式不同:类使用
extends
关键字实现继承,而构造函数需要通过原型链实现继承。 - 构造函数与类的构造方法不同:类使用
constructor
关键字定义构造方法,而构造函数直接在函数体内进行初始化。 - 静态方法:类可以直接定义静态方法,而构造函数需要将静态方法添加到构造函数的原型上。
示例:
// 类的定义
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log('Hello, my name is ' + this.name);
}
}
// 继承
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
sayGrade() {
console.log('I am in grade ' + this.grade);
}
}
let student = new Student('Tom', 18, 'A');
student.sayHello(); // 输出 "Hello, my name is Tom"
student.sayGrade(); // 输出 "I am in grade A"