为什么我们在 javascript 类中需要静态方法

Van*_*waj 7 javascript oop class ecmascript-6

为什么我们在 javascript 类中需要静态方法。

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  static hello(x) {
    return "Hello " + x.carname;
  }
}

mycar = new Car("Ford");

document.getElementById("demo").innerHTML = Car.hello(mycar);
Run Code Online (Sandbox Code Playgroud)

我知道,静态方法是直接在类(上面示例中的 Car)上调用的 - 无需创建该类的实例/对象(mycar)。但是 JS 类中的静态方法有什么用呢?

Rob*_*vey 11

能够在不创建类实例的情况下调用该方法。

这样做有一些好处。要调用实例方法,您必须创建该类的新实例,然后调用该方法(这是一个两步过程)。对于static方法来说,这是没有必要的。

更多信息在这里

静态方法通常是实用函数,例如创建或克隆对象的函数,而静态属性对于缓存、固定配置或不需要跨实例复制的任何其他数据很有用。

静态函数通常是引用透明的函数。 引用透明函数是一种不依赖实例状态来正常运行的函数。这样的函数很容易推理,因为您不必考虑函数外部发生的任何事情来理解它的作用。