Skip to content

什么情况下会使用静态方法

静态方法可以直接通过类来调用,而不需要事先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

静态方法中是无法调用任何非静态的成员的

静态方法可以被子类重写,但不会影响原父类方法