Search code examples
javascriptclassstaticthis

JS call static method from class


I have a class with a static method:

class User {
  constructor() {
    User.staticMethod();
  }

  static staticMethod() {}
}

Is there an equivalent to this for static methods (i.e. refer to the current class without an instance)?

this.staticMethod()

So I don't have to write the class name: "User".


Solution

  • From MDN documentation

    Static method calls are made directly on the class and are not callable on instances of the class. Static methods are often used to create utility functions.

    For more please see=> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

    You can do something like this => this.constructor.staticMethod(); to call static method.

    class StaticMethodCall {
      constructor() {
        console.log(StaticMethodCall.staticMethod()); 
        // 'static method has been called.' 
    
        console.log(this.constructor.staticMethod()); 
        // 'static method has been called.' 
      }
    
      static staticMethod() {
        return 'static method has been called.';
      }
    }