在ES6(ECMAScript 2015)中,引入了类(class)和继承(inheritance)的概念,这是对传统面向对象编程(OOP)的一种实现方式。
类(class)是一种模板或蓝图,用于创建具有相同属性和方法的对象。它是对象的抽象。通过类定义,我们可以创建多个具有相同属性和方法的对象。
例如,下面是一个ES6中定义类的示例:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
}
在上面的示例中,`Person` 类有两个属性 `name` 和 `age`,还有一个 `sayHello` 方法。我们可以使用 `new` 关键字基于这个类创建多个对象,并访问它们的属性和方法。
继承(inheritance)是一种通过扩展现有类创建新类的机制。新的类(子类)可以继承来自现有类(父类)的属性和方法,并可以添加自己的属性和方法。
下面是一个继承的示例:
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
study() {
console.log(`${this.name} is studying in grade ${this.grade}.`);
}
}
在上面的示例中,`Student` 类继承了 `Person` 类,通过 `extends` 关键字声明。`Student` 类新增了一个 `study` 方法,并在其构造函数中调用了父类的构造函数。
通过继承,`Student` 类获得了 `Person` 类的属性和方法,并可以添加和修改特定于自身的行为。