JavaScript 类

JavaScript ES6中,类提供了一种创建对象蓝图的方式,类似于C++或Java等传统的面向对象编程语言。

让我们通过创建一个Person类来探索一个简单的示例

// define a class named 'Person'
class Person {
    // class constructor to initialize the 'name' and 'age' properties
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
    
    // method to display a message
    greet() {
        console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
    }
}

// create two instances of the Person class
let person1 = new Person("Jack", 30);
let person2 = new Person("Tina", 33);

// call greet() method on two instances 
person1.greet();
person2.greet();

输出

Hello, my name is Jack and I am 30 years old.
Hello, my name is Tina and I am 33 years old.

在上面的示例中,我们使用class关键字定义了一个Person类。

Person类中,我们定义了

  • 一个类构造函数,用于初始化nameage属性
  • 一个greet()方法,用于使用nameage属性显示问候语。

使用new关键字,我们创建了Person类的两个对象——person1person2

然后,我们使用.运算符调用person1person2上的greet()方法

  • person1.greet() - 调用person1上的greet()
  • person2.greet() - 调用person2上的greet()

不使用类创建对象

在JavaScript中,您可以灵活地直接创建对象,而无需正式的类定义。这可以通过使用对象字面量来实现。

让我们看下面的例子,

// create an object 'person' without a formal class definition
let person = {
    name: "Jack",
    age: 30,
    greet: function() {
        console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`)
    }
};

// call the greet() method on the person object
person.greet(); 

输出

Hello, my name is Jack and I am 30 years old.

在上面的示例中,我们直接使用对象字面量创建了一个名为person的对象。

person对象具有

  • 属性——nameage,值分别为"Jack"30
  • 方法——greet(),用于显示问候语。

我们使用.运算符将person.greet()调用了person对象上的greet()方法。

要了解更多关于对象字面量的信息,请访问JavaScript Objects


JavaScript类的特性

让我们回顾一下本教程开头处的代码,并详细探讨每个部分,以更深入地了解JavaScript中类的工作原理。

// define a class named 'Person'
class Person {
    // class constructor to initialize the 'name' and 'age' properties
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
    
    // method to display a message
    greet() {
        console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
    }
}

// create two objects of the Person class
let person1 = new Person("Jack", 30);
let person2 = new Person("Tina", 33);

// call greet() method on two instances 
person1.greet();
person2.greet();

输出

Hello, my name is Jack and I am 30 years old.
Hello, my name is Tina and I am 33 years old.

创建类

在JavaScript中,我们使用class关键字创建类。例如,

// create a class
class Person {
    // body of class
};

类构造函数

类构造函数是类中一个特殊的方法,当创建该类的新对象时,它会自动执行。

Constructor of the Person Class
Person类的构造函数

Person类构造函数在创建新对象时初始化nameage属性。

这里,

  • person1对象使用"Jack"30进行初始化
  • person2对象使用"Tina"33进行初始化

类方法

类方法是类内部的一个函数,用于定义类对象的行为。

Method of the Person Class
Person类的方法

这里,greet()Person类的一个方法,当在类的对象上调用时,它会显示一个问候语。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战