javascript 中 class 中静态的用例是什么

what is the use case for static inside class in javascript

我是Javascript的初学者,不了解Class里面的静态变量或方法的概念。我不明白为什么以及何时需要它们以及它们的用例是什么?例如这个 class

class Car {
  constructor(name) {
    this.name = name;
  }
  static hello() {
    return "Hello!!";
  }
}

OOP(包括 classes)最近被添加到 JavaScript 中,在我看来,它更像是语法糖,可以让我们更轻松地构建数据,或者可能只是为了使用 new 关键字的满意度。这些 OOP 特性改编自其他语言,例如 Java.

静态方法允许您的代码的其他部分访问 class 中的变量和方法,而无需创建它的 实例 (不使用 new关键词)。

当您想从 class 检索数据而不创建实例或初始化构造函数时,这尤其有用。

举个真实世界的 Web 组件示例:

class WhyStatic {
  /* other methods... */
  static get observedAttributes() {
    return ["name", "why", "test"];
  }
}

这允许自定义元素函数访问 HTML 元素的观察属性,而无需创建额外的实例。

换句话说,我们可以为 class 创建 non-instance 特定数据,该数据可以在外部访问,并且只能在 class 实例外部访问。

这就是我们在 OOP 中需要 static 的原因。