js 类的静态方法
- 根据课程中代码案例,知识扩展而写
在 JavaScript 中,类的静态方法是属于类本身的,而不是属于类的实例。静态方法可以通过类直接调用,而不需要创建类的实例。
示例代码:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
// 实例方法
introduce() {
console.log(`大家好,我叫${this.name},今年${this.age}岁。`);
}
// 静态方法
static greet() {
console.log("你好,欢迎使用 Person 类!");
}
// 静态方法接收其他参数,可以在其中进行更复杂的操作
static compareAge(person1, person2) {
if (person1.age > person2.age) {
return `${person1.name} 比 ${person2.name} 年龄大`;
} else if (person1.age < person2.age) {
return `${person2.name} 比 ${person1.name} 年龄大`;
} else {
return `${person1.name} 和 ${person2.name} 年龄相同`;
}
}
}
// 调用静态方法
Person.greet(); // 输出:你好,欢迎使用 Person 类!
const person1 = new Person("张三", 25);
const person2 = new Person("李四", 30);
// 调用静态方法比较年龄
console.log(Person.compareAge(person1, person2)); // 输出:李四 比 张三 年龄大
解释:
static greet()
是一个静态方法,你可以直接通过类Person
来调用它,而不需要创建一个Person
实例。static compareAge(person1, person2)
是一个静态方法,它接受两个Person
实例作为参数,并根据他们的年龄进行比较。
静态方法的特征:
- 调用方式:静态方法只能通过类本身调用,不能通过实例调用。
- 无法访问实例属性:静态方法不能访问实例的属性和方法,只能访问类级别的属性和方法。
- 用途:通常用于执行与类本身相关的操作,而不是操作特定实例的数据。
相信坚持的力量,日复一日的习惯.