Maison > interface Web > js tutoriel > Comment appeler des méthodes statiques dans les classes ES6 : constructeur vs nom de classe ?

Comment appeler des méthodes statiques dans les classes ES6 : constructeur vs nom de classe ?

DDD
Libérer: 2024-11-18 12:03:02
original
648 Les gens l'ont consulté

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

Comment appeler des méthodes statiques dans les classes ES6

Lorsqu'il s'agit de méthodes statiques dans les classes ES6, il existe deux approches principales pour les invoquer. Le choix entre les deux dépend de vos besoins et attentes spécifiques.

Utilisation du constructeur

La première méthode consiste à utiliser la fonction constructeur de la classe. Par exemple, dans l'exemple suivant :

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

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

  printN(){
    this.constructor.print(this.n);
  }
}
Copier après la connexion

Pour appeler la méthode d'impression statique, vous pouvez utiliser this.constructor.print(n) dans les méthodes d'instance, comme indiqué dans printN.

Utilisation du nom de classe

La deuxième approche consiste à invoquer la méthode statique directement via le nom de la classe. En reprenant l'exemple précédent :

SomeObject.print(n);
Copier après la connexion

Considérations sur l'héritage

Lors du remplacement de méthodes statiques dans les sous-classes, les deux approches peuvent avoir des implications différentes :

  • L'utilisation du nom de classe fait référence à la propriété statique de la classe actuelle et remplace si elle est présente. Ceci est similaire à l'approche de Java.
  • L'utilisation de this.constructor fait référence à la propriété statique de la classe de l'instance actuelle, y compris les éventuels remplacements. Ceci est similaire au comportement de Python.

Quelle approche choisir ?

L'approche la plus appropriée dépend du comportement souhaité. Si vous souhaitez que des méthodes statiques fassent toujours référence à la classe à laquelle elles appartiennent, utilisez le nom de classe explicite. Si vous préférez la répartition dynamique, où des méthodes statiques remplacées sont utilisées, utilisez this.constructor.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal