Skip to content

静态属性和静态方法

提示

https://zh.javascript.info/static-properties-methods#zong-jie

静态方法被用于实现属于整个类的功能。它与具体的类实例无关。

举个例子, 一个用于进行比较的方法 Article.compare(article1, article2) 或一个工厂(factory)方法 Article.createTodays()。

在类声明中,它们都被用关键字 static 进行了标记。

静态属性被用于当我们想要存储类级别的数据时,而不是绑定到实例。

语法如下所示:

js
class MyClass {
  static property = ...;

  static method() {
    ...
  }
}

从技术上讲,静态声明与直接给类本身赋值相同:

js
MyClass.property = ...
MyClass.method = ...

静态属性和方法是可被继承的。

对于 class B extends A,类 B 的 prototype 指向了 A:B.[[Prototype]] = A。因此,如果一个字段在 B 中没有找到,会继续在 A 中查找。

基于 MIT 许可发布