Méthodes statiques JavaScript

Les méthodes statiques en JavaScript sont des méthodes qui sont attachées à la classe elle-même plutôt qu'à une instance de la classe. Ils peuvent être appelés directement par le nom de la classe sans créer d'instance de la classe. Les méthodes statiques sont généralement utilisées pour exécuter des fonctions utilitaires ou des opérations associées à une classe.

En JavaScript, les méthodes statiques peuvent être définies à l'aide du mot-clé `static`. Voici un exemple:

```javascript
class MyClass {   static myStaticMethod() {     console.log('Ceci est une méthode statique.');   }


  static anotherStaticMethod() {     console.log('Ceci est une autre méthode statique.');   } }


// Appelez la méthode statique
MyClass.myStaticMethod(); // Sortie : Ceci est une méthode statique.
MyClass.anotherStaticMethod(); // Sortie : Ceci est une autre méthode statique.
```

Dans l'exemple ci-dessus, `myStaticMethod()` et `anotherStaticMethod()` sont les deux méthodes statiques de la classe `MyClass`. En utilisant le nom de la classe, nous pouvons appeler ces méthodes directement.

Il est important de noter que les méthodes statiques ne peuvent pas accéder aux propriétés d'instance ou aux méthodes d'une classe car elles n'ont rien à voir avec une instance de la classe. Ils ne peuvent accéder qu'aux autres membres statiques (tels que les propriétés statiques ou d'autres méthodes statiques).

De plus, les méthodes statiques ne peuvent pas être héritées. Si vous dérivez une sous-classe d'une classe qui contient des méthodes statiques, la sous-classe héritera des méthodes d'instance et des propriétés de la classe parent, mais pas des méthodes statiques de la classe parent.

```javascript
class MaSousClasse extend MaClasse {   // Voici la méthode d'instance de la sous-classe   maMéthode() {     console.log('Ceci est une méthode d'instance.');   } }




const instance = new MySubClass();
instance.myMethod(); // Sortie : Ceci est une méthode d'instance.
MySubClass.myStaticMethod(); // Erreur ! Les méthodes statiques ne sont pas héritées par les sous-classes.
```

Dans l'exemple ci-dessus, `MySubClass` hérite de la méthode d'instance `myMethod()` de `MyClass`, mais ne peut pas hériter de `myStaticMethod()`.

Les méthodes statiques sont utiles dans de nombreuses situations, telles que la création de fonctions utilitaires ou de méthodes de classe utilitaire qui ne nécessitent pas d'accès à l'état d'instance de la classe. Ils peuvent fournir un moyen concis d'organiser et d'invoquer les fonctionnalités associées à une classe.

Voici quelques exemples utilisant des méthodes statiques :

```javascript
class MathUtils {   static square(x) {     return x * x;   }


  statique getRandomNumber(min, max) {     return Math.floor(Math.random() * (max - min + 1)) + min;   }

  static isEven(number) {     return number % 2 === 0;   } }


console.log(MathUtils.square(5)); // sortie : 25

const randomNumber = MathUtils.getRandomNumber(1, 10);
console.log(randomNumber); // sortie : nombre aléatoire généré

console.log(MathUtils.isEven(4)); // Sortie : vrai
console.log(MathUtils.isEven(7)); // Sortie : faux
```

Dans l'exemple ci-dessus, la classe `MathUtils` définit trois méthodes statiques : `square()`, `getRandomNumber()` et `isEven()`.

- La méthode `square()` prend un argument `x` et renvoie son carré.
- La méthode `getRandomNumber()` accepte deux paramètres `min` et `max`, et retourne un entier aléatoire entre `min` et `max`.
- La méthode `isEven()` accepte un paramètre `number` pour déterminer si le nombre est pair.

Ces méthodes statiques peuvent être appelées directement par le nom de la classe sans créer d'instance de la classe `MathUtils`. En appelant `MathUtils.square(5)`, nous pouvons calculer le carré de 5 et imprimer le résultat.

L'utilisation de méthodes statiques peut facilement organiser et appeler certaines fonctions utilitaires ou opérations liées à la classe, sans avoir à créer une instance de la classe à chaque fois qu'elle est utilisée.

Je suppose que tu aimes

Origine blog.csdn.net/smarten57/article/details/131146266
conseillé
Classement