Aller au contenu

Classes

Une classe est un modèle qui permet de créer des objets partageant les mêmes propriétés et méthodes.
En réalité, les classes JavaScript sont du sucre syntaxique autour du système basé sur les prototypes.

➡ Elles rendent le code plus lisible et proche d’autres langages orientés objet.


Une classe peut contenir :

  • un constructeur → fonction spéciale exécutée à la création de l’objet,
  • des méthodes → fonctions définies dans la classe.
class Personne {
constructor(nom, age) {
this.nom = nom;
this.age = age;
}
sePresenter() {
console.log(`Je m'appelle ${this.nom} et j'ai ${this.age} ans.`);
}
}
let alice = new Personne("Alice", 25);
alice.sePresenter(); // Je m'appelle Alice et j'ai 25 ans.

Avec extends, une classe peut hériter d’une autre. On peut utiliser super() pour appeler le constructeur de la classe parente.

class Animal {
constructor(nom) {
this.nom = nom;
}
parler() {
console.log(`${this.nom} fait un bruit.`);
}
}
class Chien extends Animal {
constructor(nom, race) {
super(nom); // appelle le constructeur de Animal
this.race = race;
}
parler() {
console.log(`${this.nom} aboie.`);
}
}
let rex = new Chien("Rex", "Berger allemand");
rex.parler(); // Rex aboie.

Une méthode peut être déclarée comme static → elle est appelée directement sur la classe, pas sur une instance.

class Maths {
static addition(a, b) {
return a + b;
}
}
console.log(Maths.addition(2, 3)); // 5

  • Utiliser les classes pour modéliser des entités (ex. Utilisateur, Produit).
  • Employer extends + super pour réutiliser du code et faciliter l’héritage.
  • Préférer les méthodes statiques quand l’action ne dépend pas d’une instance particulière.
  • Garder en tête que les classes sont du sucre syntaxique → en interne, JavaScript repose toujours sur le mécanisme des prototypes.