Niveau classe vs Niveau instance
Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 31 sur 56.
Dans les classes JavaScript, il existe deux niveaux distincts de propriétés et de méthodes :
- Niveau instance : Propriétés et méthodes qui appartiennent à chaque objet individuel créé à partir de la classe.
- Niveau classe : Propriétés et méthodes qui appartiennent à la classe elle-même, et non aux instances.
Comprenons la différence :
Tout d'abord, examinons les membres au niveau de l'instance. Créez une classe standard avec une méthode d'instance :
class Car {
constructor(make) {
this.make = make;
}
drive() {
return `The ${this.make} is driving`;
}
}Créez une instance de la classe Car :
const myCar = new Car("Toyota");Appelez la méthode d'instance :
console.log(myCar.drive()); // Affiche : "The Toyota is driving"Remarquez que chaque instance reçoit sa propre copie de la méthode drive et peut accéder à ses propres propriétés en utilisant this.
Maintenant, examinons les membres au niveau de la classe. Nous ajoutons une méthode statique à notre classe. Utilisez le mot-clé static devant le nom de la méthode pour créer une méthode qui appartient à la classe elle-même, et non aux instances.
class Car {
constructor(make) {
this.make = make;
}
drive() {
return `The ${this.make} is driving`;
}
static compareModels(car1, car2) {
return `Comparing ${car1.make} with ${car2.make}`;
}
}Les méthodes statiques sont utiles pour les fonctions utilitaires qui ne dépendent pas de données d'instance spécifiques. La méthode statique est appelée sur la classe elle-même, et non sur les instances :
const car1 = new Car("Toyota");
const car2 = new Car("Honda");
console.log(Car.compareModels(car1, car2)); // Affiche : "Comparing Toyota with Honda"Tenter d'appeler une méthode statique sur une instance entraînera une erreur :
car1.compareModels(car1, car2); // Erreur : car1.compareModels n'est pas une fonctionDéfi
On vous donne une classe Calculator avec seulement un constructeur. Votre tâche consiste à ajouter deux méthodes :
1. Méthode d'instance <strong>add(number)</strong>
- Ajoute le nombre donné à la valeur actuelle de la calculatrice
Met à jour
this.valueet retourne la nouvelle valeur*Elle est appelée sur les instances de la calculatrice :
calc.add(3)
2. Méthode statique <strong>multiply(num1, num2)</strong>
- Prend deux nombres et retourne leur produit
N'utilise PAS
this(les méthodes statiques n'ont pas de données d'instance)*Elle est appelée sur la classe Calculator elle-même :
Calculator.multiply(4, 6)
Essayez vous-même
import { Calculator } from './calculator.js';
// Ne modifiez pas le code ci-dessous
const calc = new Calculator(5); // Crée une calculatrice avec la valeur = 5
const result1 = calc.add(3); // Devrait ajouter 3 → 5 + 3 = 8
const result2 = Calculator.multiply(4, 6); // Devrait multiplier 4 × 6 = 24
console.log(result1); // Attendu : 8
console.log(result2); // Attendu : 24Cette 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 CircleRedéfinition et méthode AreaCompteur de formes statique14Système de gestion de bibliothèque
Conception de la bibliothèqueClasse Book avec compositionValidation de l'auteur du livre3Classes 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