web-dev-qa-db-ja.com

jsはクラスから静的メソッドを呼び出します

私は静的メソッドを持つクラスを持っています:

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

  static staticMethod() {}
}

静的メソッドの場合、このようなものがあります(つまり、インスタンスなしで現在のクラスを参照します)。

this.staticMethod()

したがって、クラス名「User」を記述する必要はありません。

19
Chris

MDNドキュメントから

静的メソッド呼び出しは、クラスで直接行われ、クラスのインスタンスで呼び出すことはできません。静的メソッドは、ユーティリティ関数を作成するためによく使用されます。

詳細については、以下を参照してください=> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

静的メソッドを呼び出すには、次のようなことを行います=> this.constructor.staticMethod());.

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.';
  }
}
34
Ninjaneer

このUser.staticMethod()の代わりにthis.constructor.staticMethod()を追加できます

4
Santhosh Kumar

staticのものはインスタンスではなくクラスにバインドします。したがって、少なくともクラス名を指定する必要があります。

クラスにバインドしたくない場合は、グローバルにします。

2
Suresh Atta