Heim  >  Artikel  >  Web-Frontend  >  Wie rufe ich statische Methoden in ES6-Klassen auf: Konstruktor vs. Klassenname?

Wie rufe ich statische Methoden in ES6-Klassen auf: Konstruktor vs. Klassenname?

DDD
DDDOriginal
2024-11-18 12:03:02561Durchsuche

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

So rufen Sie statische Methoden in ES6-Klassen auf

Beim Umgang mit statischen Methoden in ES6-Klassen gibt es zwei Hauptansätze, um sie aufzurufen. Die Wahl zwischen den beiden hängt von Ihren spezifischen Anforderungen und Erwartungen ab.

Verwendung des Konstruktors

Die erste Methode beinhaltet die Verwendung der Konstruktorfunktion der Klasse. Zum Beispiel im folgenden Beispiel:

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

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

  printN(){
    this.constructor.print(this.n);
  }
}

Um die statische Druckmethode aufzurufen, können Sie this.constructor.print(n) innerhalb von Instanzmethoden verwenden, wie in printN angegeben.

Verwendung des Klassennamens

Der zweite Ansatz besteht darin, die statische Methode direkt über den Klassennamen aufzurufen. Weiter mit dem vorherigen Beispiel:

SomeObject.print(n);

Überlegungen zur Vererbung

Beim Überschreiben statischer Methoden in Unterklassen können die beiden Ansätze unterschiedliche Auswirkungen haben:

  • Die Verwendung des Klassennamens bezieht sich auf die statische Eigenschaft der aktuellen Klasse und überschreibt, falls vorhanden. Dies ähnelt dem Ansatz von Java.
  • Die Verwendung von this.constructor bezieht sich auf die statische Eigenschaft der Klasse der aktuellen Instanz, einschließlich möglicher Überschreibungen. Dies ähnelt dem Verhalten von Python.

Welchen Ansatz wählen?

Der am besten geeignete Ansatz hängt von Ihrem gewünschten Verhalten ab. Wenn Sie statische Methoden wünschen, die immer auf die Klasse verweisen, zu der sie gehören, verwenden Sie den expliziten Klassennamen. Wenn Sie dynamischen Versand bevorzugen, bei dem überschriebene statische Methoden verwendet werden, verwenden Sie this.constructor.

Das obige ist der detaillierte Inhalt vonWie rufe ich statische Methoden in ES6-Klassen auf: Konstruktor vs. Klassenname?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn