Méthodes utilitaires statiques
Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 33 sur 56.
Les méthodes statiques sont des fonctions utilitaires qui appartiennent à la classe elle-même plutôt qu'aux instances de la classe. Elles sont utiles pour les fonctions qui ne nécessitent pas d'accès aux données spécifiques à l'instance.
Créons une classe avec une méthode utilitaire statique :
class MathHelper {
// Définir une méthode statique
static square(number) {
return number * number;
}
}Pour appeler une méthode statique, vous utilisez directement le nom de la classe :
// Appeler la méthode statique sans créer d'instance
const result = MathHelper.square(5);
console.log(result); // 25Remarquez que nous n'avons pas eu besoin de créer une nouvelle instance avec new MathHelper(). Les méthodes statiques sont parfaites pour les fonctions utilitaires qui effectuent des opérations sans avoir besoin de données d'instance.
Défi
Créez une classe nommée StringUtils avec une méthode statique appelée capitalize qui prend une chaîne de caractères en argument et renvoie la même chaîne avec la première lettre en majuscule. Par exemple, si l'entrée est "javascript", la méthode doit renvoyer "Javascript". Exportez cette classe.
- Vérifiez si la chaîne est vide :
if (!str || str.length === 0)(Sans cette vérification, une chaîne vide pourrait causer des problèmes).!strvérifie si la valeur estnull/undefined(évite les erreurs)str.length === 0vérifie si la chaîne est vide (renvoie "" au lieu de planter)
- Récupérez le premier caractère :
str.charAt(0) - Mettez-le en majuscule :
.toUpperCase() - Récupérez le reste de la chaîne :
str.slice(1)(de la position 1 jusqu'à la fin) - Combinez : le premier caractère en majuscule + le reste de la chaîne
Aide-mémoire
Les méthodes statiques sont des fonctions utilitaires qui appartiennent à la classe elle-même plutôt qu'aux instances. Elles ne nécessitent pas d'accès aux données spécifiques à l'instance.
Définissez une méthode statique en utilisant le mot-clé static :
class MathHelper {
static square(number) {
return number * number;
}
}Appelez les méthodes statiques directement sur la classe sans créer d'instance :
const result = MathHelper.square(5);
console.log(result); // 25Méthodes de chaîne utiles pour les utilitaires statiques :
str.charAt(0)- récupère le premier caractèrestr.toUpperCase()- convertit en majusculesstr.slice(1)- récupère la sous-chaîne de la position 1 jusqu'à la fin!str || str.length === 0- vérifie si la chaîne est nulle/indéfinie ou vide
Essayez vous-même
import { StringUtils } from './stringUtils.js';
// Ne pas modifier le code ci-dessous
console.log(StringUtils.capitalize("programming"));Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Objets et le mot-clé this
Révision rapide : Les objetsAjouter des méthodes aux objetsComprendre le mot-clé thisFonctions constructeursLe mot-clé newDéfi récapitulatif7L'héritage et le mot-clé extends
L'héritageLa relation « est un »Le mot-clé extendsLa méthode super()Hériter des propriétés et méthodesDéfi récapitulatif10Polymorphisme
Qu'est-ce que le polymorphisme ?Redéfinition de méthodes héritéesUtiliser superDéfi récapitulatif13Composition vs Héritage
Les relations « has-a » vs « is-a »Les limites de l'héritage profondConstruction d'objets2Organisation du code
Qu'est-ce qu'un module ?Exporter avec exportImporter avec importExports par défaut vs nommés5Encapsulation & Accès
EncapsulationChamps de classe publics et privésMéthodes privéesDéfi récapitulatif8Organisation du code POO
Organiser les classes en modules11Projet : Un moteur de rendu de formes
Configuration : Classe Shape et ExportationHéritage de la classe Circle14Système de gestion de bibliothèque
Conception de la bibliothèqueClasse Book avec composition3Classes et Objets
Qu'est-ce qu'une classe ?Créer des instancesPropriétés et méthodesDéfi récapitulatif9Méthodes et propriétés statiques
Niveau classe vs Niveau instancePropriétés statiquesMéthodes utilitaires statiquesDéfi récapitulatif