📅  最后修改于: 2023-12-03 15:30:38.637000             🧑  作者: Mango
在ES6之前,定义构造函数需要使用函数声明或函数表达式,使它们成为对象构造函数。ES6引入了一种新的语法形式:类,它使用类语法定义了对象构造函数。
使用类语法定义构造函数的语法如下:
class ClassName {
constructor() {
// 构造函数代码
}
// 方法定义
methodName() {
// 方法代码
}
// 其他方法...
}
使用类语法定义构造函数必须使用constructor方法。它在创建类实例时自动调用,用于初始化类属性和执行其他初始化代码。例如:
class Person {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Hello, ${this.name}!`);
}
}
const person = new Person("John");
person.sayHello(); // 输出 "Hello, John!"
可以在类中定义方法来扩展类的功能。这些方法可以在类实例上调用。例如:
class Person {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Hello, ${this.name}!`);
}
static listPeople(people) {
people.forEach(person => {
console.log(person.name);
});
}
}
const person1 = new Person("John");
const person2 = new Person("Jane");
person1.sayHello(); // 输出 "Hello, John!"
person2.sayHello(); // 输出 "Hello, Jane!"
Person.listPeople([person1, person2]); // 输出 "John" 和 "Jane"
使用static关键字定义的方法称为静态方法。它们不在类实例上可用,而只能在类本身上调用。例如:
class MathUtils {
static add(a, b) {
return a + b;
}
}
console.log(MathUtils.add(1, 2)); // 输出 3
使用类语法定义构造函数是ES6提供的更便捷、更简单的定义全新对象的方式。通过定义构造函数和类方法,可以更方便地实现面向对象编程范式。