什么情况下会使用静态方法
静态方法可以直接通过类来调用,而不需要事先new
出一个类的实例。
js
class ClassWithStaticMethod {
static staticProperty = 'someValue';
static staticMethod() {
return 'static method has been called.';
}
static {
console.log('Class static initialization block called');
}
}
console.log(ClassWithStaticMethod.staticProperty);
// Expected output: "someValue"
console.log(ClassWithStaticMethod.staticMethod());
// Expected output: "static method has been called."
- 当一个方法使用频率比较高时,而且不需要依赖其他类成员,则可以使用静态方法。避免频繁实例化对象导致资源占用问题。
- 静态的成员和方法是在构造时就产生的,在运行结束前它不会被垃圾回收掉,会一直占据一定的空间(如果方法不经常被调用,使用实例方法会更好)
- 可以用于封装某些方法,例如
Math.max()
,因为这些对象无需依赖类中的任何一个对象和方法,也属于计算方面的方法,所以采用静态方法会更好
TIP
静态方法中是无法调用任何非静态的成员的
静态方法可以被子类重写,但不会影响原父类方法