在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
类中,我们定义了
- 一个类构造函数,用于初始化
name
和age
属性 - 一个
greet()
方法,用于使用name
和age
属性显示问候语。
使用new
关键字,我们创建了Person
类的两个对象——person1
和person2
。
然后,我们使用.
运算符调用person1
和person2
上的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
对象具有
- 属性——
name
和age
,值分别为"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
};
类构造函数
类构造函数是类中一个特殊的方法,当创建该类的新对象时,它会自动执行。

Person
类构造函数在创建新对象时初始化name
和age
属性。
这里,
person1
对象使用"Jack"
和30进行初始化person2
对象使用"Tina"
和33进行初始化
类方法
类方法是类内部的一个函数,用于定义类对象的行为。

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