JavaScript中的class类

121 阅读2分钟

JavaScript 中的类(Class)是一种新的语言特性,它让我们可以使用面向对象编程的思想来更加方便地组织和管理代码。在本文中,我们将详细介绍 JavaScript 中的类特性。

ES6引入了JavaScript中的类(class)语法,使得面向对象编程更加直观和易用。类(class)是一种用于创建对象的蓝图,它定义了对象的属性和方法。

class ClassName {
  constructor() {
    // 构造函数,用于创建和初始化对象
  }

  method1() {
    // 定义类的方法
  }

  method2() {
    // 定义另一个类的方法
  }

  // 可以定义其他方法和属性
}

在类中,constructor方法被用来创建和初始化对象。可以在构造函数中接收参数,并用于设置对象的初始状态。

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log(`my name is ${this.name} and I'm ${this.age}.`);
  }
}

const person = new Person('John', 25);
person.sayHello(); // 输出: my name is John and I'm 25.

Person类有一个构造函数,它接收nameage作为参数,并将它们分别存储在类的实例(person)的属性中。sayHello方法用于在控制台输出问候语,其中使用了实例的属性。

ES6的类还支持继承,可以通过extends关键字从一个基类派生出子类。子类可以继承基类的属性和方法,并且可以添加自己的属性和方法。

class Animal {
  constructor(name) {
    this.name = name;
  }

  eat() {
    console.log(`${this.name} is eating.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this.breed = breed;
  }

  bark() {
    console.log(`${this.name} is barking.`);
  }
}

// 创建Animal类的实例
const animal = new Animal("Animal");
animal.eat();    //输出:Animal is eating.

// 创建Dog类的实例
const dog = new Dog("Bobby", "Labrador");
dog.eat();    //输出:Bobby is eating.
dog.bark();  //输出:Bobby is barking.

有一个基类Animal和一个继承自Animal的子类DogAnimal类有一个构造函数和一个eat方法,而Dog类在继承Animal类的基础上,还有一个构造函数和一个自己独有的bark方法。

当创建Dog类的实例时,我们需要调用super(name)来调用父类Animal的构造函数,并传递相应的参数。这样子类就可以继承基类的属性和方法,并且可以添加自己的属性和方法。