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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-16 07:50:03957parcourir

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

Appel de méthodes statiques dans les classes ES6

Dans les classes ES6, les méthodes statiques peuvent être définies à l'aide du mot-clé static. On pourrait s'interroger sur la manière standard d'appeler ces méthodes statiques.

Deux approches :

1. Utilisation du constructeur

Cette approche implique d'utiliser la propriété constructeur de l'instance de classe pour accéder à la méthode statique. Par exemple :

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

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

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

2. Utilisation du nom de classe

L'autre approche consiste à utiliser directement le nom de la classe pour appeler la méthode statique. Comme ceci :

SomeObject.print(123);

Implications sur l'héritage :

L'utilisation de l'une ou l'autre approche a des implications différentes lorsqu'il s'agit de gérer l'héritage et de remplacer des méthodes statiques.

  • Approche constructeur : Utilise la répartition dynamique, elle fait donc référence à la classe de l'instance actuelle. Si la méthode statique est remplacée dans une sous-classe, la méthode remplacée sera appelée.
  • Approche du nom de classe : Fait directement référence à la classe dans laquelle la méthode statique est définie, en contournant tout remplacement potentiel en sous-classes.

Conclusion :

Les deux approches sont valables, mais le choix dépend du comportement souhaité dans le contexte de l'héritage. Si vous vous attendez à ce que les propriétés statiques restent cohérentes et appartiennent à la classe d'origine, utilisez l'approche du nom de classe. Si vous avez besoin d'un accès dynamique aux propriétés statiques de la classe de l'instance actuelle, utilisez l'approche constructeur.

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!

Déclaration:
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