ES6 クラスで静的メソッドを呼び出す方法: コンストラクターとクラス名?

Patricia Arquette
リリース: 2024-11-16 07:50:03
オリジナル
885 人が閲覧しました

How to Call Static Methods in ES6 Classes: Constructor vs. Class Name?

ES6 クラスでの静的メソッドの呼び出し

ES6 クラスでは、static キーワードを使用して静的メソッドを定義できます。これらの静的メソッドを呼び出す標準的な方法について疑問に思う人もいるかもしれません。

2 つのアプローチ:

1.コンストラクターの使用

このアプローチには、クラス インスタンスのコンストラクター プロパティを使用して静的メソッドにアクセスすることが含まれます。例:

class SomeObject {
  constructor(n) {
    this.n = n;
  }

  static print(n) {
    console.log(n);
  }

  printN() {
    this.constructor.print(this.n);
  }
}
ログイン後にコピー

2.クラス名の使用

もう 1 つの方法は、クラス名を直接使用して静的メソッドを呼び出すことです。以下のように:

SomeObject.print(123);
ログイン後にコピー

継承の影響:

どちらのアプローチを使用しても、継承を処理するときと静的メソッドをオーバーライドするときに異なる影響があります。

  • コンストラクターのアプローチ: 動的ディスパッチを使用するため、現在のインスタンスのクラスを参照します。静的メソッドがサブクラスでオーバーライドされる場合、オーバーライドされたメソッドが呼び出されます。
  • クラス名のアプローチ: 静的メソッドが定義されているクラスを直接参照し、潜在的なオーバーライドをバイパスします。

結論:

どちらのアプローチも有効ですが、選択は継承のコンテキストで必要な動作によって異なります。静的プロパティが一貫性を保ち、元のクラスに属することが期待される場合は、クラス名のアプローチを使用します。現在のインスタンスのクラスの静的プロパティに動的にアクセスする必要がある場合は、コンストラクターのアプローチを使用します。

以上がES6 クラスで静的メソッドを呼び出す方法: コンストラクターとクラス名?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート