返回

强势登场:ES6 的 Class 与继承原理

前端

ES6 Class 简介

ES6 引入了 Class 的概念,这是一种类似于传统编程语言中的类,用于创建对象。Class 具有以下特点:

  • **class ** 用于定义类。
  • 构造函数: 每个类都必须有一个构造函数,用于创建对象实例。构造函数中的参数列表决定了对象实例的属性。
  • 实例方法: 类可以定义实例方法,用于在对象实例上执行操作。实例方法在类中定义,并在对象实例上调用。
  • 静态方法: 类还可以定义静态方法,静态方法与实例方法不同,静态方法属于类本身,而不属于任何对象实例。静态方法在类中定义,并在类本身上调用。

ES6 继承

ES6 中的继承通过 extends 实现。extends 关键字用于指定一个类继承自另一个类。继承自另一个类的类称为子类,被继承的类称为父类。

子类继承父类的所有属性和方法,并可以扩展或重写父类的方法。子类还可以定义自己的属性和方法。

实例

// 定义一个父类 Person
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  // 定义一个实例方法
  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

// 定义一个子类 Student
class Student extends Person {
  constructor(name, age, major) {
    super(name, age); // 调用父类的构造函数
    this.major = major;
  }

  // 重写父类的方法
  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old. I am a student majoring in ${this.major}.`);
  }
}

// 创建一个 Person 对象
const person = new Person('John', 30);

// 创建一个 Student 对象
const student = new Student('Jane', 20, 'Computer Science');

// 调用对象的方法
person.greet();
student.greet();

结论

ES6 中的 Class 和继承提供了面向对象编程的特性,使 JavaScript 代码更加结构化和易于维护。通过本指南,您已经对 ES6 的 Class 和继承原理有了深入的了解。希望本指南对您有所帮助。