ES6 クラスで静的メソッドを呼び出す方法
ES6 クラスで静的メソッドを扱う場合、それらを呼び出すには主に 2 つのアプローチがあります。この 2 つのどちらを選択するかは、特定の要件と期待によって異なります。
コンストラクターの使用
最初の方法では、クラスのコンストラクター関数を使用します。たとえば、次の例では:
class SomeObject { constructor(n){ this.n = n; } static print(n){ console.log(n); } printN(){ this.constructor.print(this.n); } }
静的 print メソッドを呼び出すには、インスタンス メソッド内で this.constructor.print(n) を使用できます (как показано в printN.
) クラス名の使用
2 番目の方法は、クラス名を使用して静的メソッドを直接呼び出すことです。前の例を続けます:
SomeObject.print(n);
継承に関する考慮事項
サブクラスの静的メソッドをオーバーライドする場合、2 つのアプローチは異なる影響を与える可能性があります:
どのアプローチを選択しますか?
最も適切なアプローチは、目的の動作によって異なります。静的メソッドが所属するクラスを常に参照するようにしたい場合は、明示的なクラス名を使用します。オーバーライドされた静的メソッドが使用される動的ディスパッチを希望する場合は、this.constructor.
を使用してください。以上がES6 クラスで静的メソッドを呼び出す方法: コンストラクターとクラス名?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。