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 实例作为参数,并根据他们的年龄进行比较。

静态方法的特征:

  1. 调用方式:静态方法只能通过类本身调用,不能通过实例调用。
  2. 无法访问实例属性:静态方法不能访问实例的属性和方法,只能访问类级别的属性和方法。
  3. 用途:通常用于执行与类本身相关的操作,而不是操作特定实例的数据。
posted @ 2024-11-14 14:03  盘思动  阅读(5)  评论(0编辑  收藏  举报