Contenu du cours
Maîtrise Avancée de JavaScript
Maîtrise Avancée de JavaScript
Méthodes Statiques
Les méthodes statiques fournissent des fonctionnalités partagées au niveau de la classe, accessibles sans créer une instance.
Qu'est-ce que les méthodes statiques ?
Pensez à une entreprise de services publics qui fournit de l'électricité. L'entreprise elle-même (classe) fournit l'énergie, mais vous (une instance) n'avez pas besoin de créer une centrale électrique chez vous. Au lieu de cela, vous accédez directement au service de l'entreprise (méthode statique).
Comment définir et utiliser les méthodes statiques
Les méthodes statiques sont déclarées en utilisant le mot-clé static
. Vous pouvez les appeler directement depuis la classe, mais elles n'ont pas accès aux propriétés ou méthodes d'instance puisqu'elles opèrent au niveau de la classe.
class MathUtils { // Static method to calculate the square of a number static square(number) { return number * number; } // Static method to calculate the cube of a number static cube(number) { return number * number * number; } } // Calling static methods directly from the class console.log(MathUtils.square(4)); // Output: 16 console.log(MathUtils.cube(3)); // Output: 27
Dans cet exemple, les méthodes square
et cube
sont statiques, ce qui signifie qu'elles appartiennent à la classe MathUtils
et peuvent être appelées directement sur la classe elle-même. Ces méthodes effectuent des opérations mathématiques et sont partagées par l'ensemble de la classe sans avoir besoin d'être associées à une instance spécifique.
Pourquoi utiliser des méthodes statiques ?
Les méthodes statiques sont utiles lorsque vous souhaitez fournir des fonctionnalités liées à la classe mais qui n'ont pas besoin d'être liées à des instances individuelles. Elles sont couramment utilisées pour des fonctions utilitaires, des méthodes d'assistance ou une logique qui s'applique globalement à l'ensemble de la classe.
- Les méthodes statiques sont souvent utilisées pour des opérations qui s'appliquent universellement, comme les calculs mathématiques, la manipulation de dates ou le formatage de chaînes de caractères ;
- Les méthodes statiques peuvent également être utilisées pour des opérations impliquant la classe elle-même, comme la création d'instances de manière spécifique, la gestion des configurations au niveau de la classe ou la fourniture d'un accès aux données à l'échelle de la classe.
Exemple : Méthode utilitaire statique
Prenons un exemple concret où une classe User
a une méthode statique pour comparer les identifiants de deux utilisateurs. Cette méthode n'a pas besoin d'interagir avec les données d'un utilisateur individuel, elle peut donc être une méthode statique sur la classe.
class User { constructor(id, name) { this.id = id; this.name = name; } // Static method to compare user IDs static compareIds(user1, user2) { return user1.id === user2.id; } } const user1 = new User(101, 'Alice'); const user2 = new User(102, 'Bob'); const user3 = new User(101, 'Charlie'); // Using the static method to compare user IDs console.log(User.compareIds(user1, user2)); // Output: false console.log(User.compareIds(user1, user3)); // Output: true
Dans cet exemple, la méthode statique compareIds
appartient à la classe User
et vous permet de comparer les IDs de deux instances de User
sans avoir besoin d'accéder à leurs propriétés ou méthodes individuelles.
Principales différences entre les méthodes statiques et d'instance
Exemple du monde réel : Classe utilitaire d'application
Prenons un scénario où une application doit enregistrer des données. Une classe Logger
peut avoir des méthodes statiques pour enregistrer des messages avec différents niveaux (info, avertissement, erreur). Ces méthodes peuvent être accessibles globalement sans créer une instance du logger.
class Logger { static info(message) { console.log(`INFO: ${message}`); } static warning(message) { console.warn(`WARNING: ${message}`); } static error(message) { console.error(`ERROR: ${message}`); } } // Calling static methods directly from the Logger class Logger.info('Application started'); Logger.warning('Low disk space'); Logger.error('Uncaught exception occurred');
Dans cet exemple, les méthodes statiques info
, warning
et error
sont des fonctions utilitaires qui peuvent être appelées globalement pour enregistrer des messages à différents niveaux. Aucune instance de Logger
n'est nécessaire pour utiliser ces méthodes.
1. Qu'est-ce qu'une méthode statique ?
2. Comment définissez-vous une méthode statique dans une classe ?
Merci pour vos commentaires !