web-dev-qa-db-fra.com

js appelle la méthode statique de la classe

J'ai une classe avec une méthode statique:

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

  static staticMethod() {}
}

Existe-t-il quelque chose comme ça pour les méthodes statiques (c'est-à-dire faire référence à la classe actuelle sans instance).

this.staticMethod()

donc je n'ai pas besoin d'écrire le nom de classe 'User'.

19
Chris

De la documentation MDN

Les appels de méthode statique sont effectués directement sur la classe et ne sont pas appelables sur les instances de la classe. Les méthodes statiques sont souvent utilisées pour créer des fonctions utilitaires.

Pour plus d'informations, consultez => https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

Vous pouvez faire quelque chose comme ceci => this.constructor.staticMethod()); pour appeler la méthode statique.

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

au lieu de ce User.staticMethod (), vous pouvez ajouter this.constructor.staticMethod ()

4
Santhosh Kumar

static les choses se lient à la classe plutôt qu'à l'instance. Vous devez donc au moins spécifier le nom de la classe.

Si vous ne voulez pas les lier à une classe, rendez-les globaux.

2
Suresh Atta