主题
静态属性和静态方法
提示
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 中查找。