En Python, class est fondamental.
En JS, historiquement, tout était basé sur des Prototypes (une sorte de chaîne d'héritage d'objets, très puissante mais déroutante).
Depuis ES6 (2015), on a le mot-clé class.
C'est juste une belle syntaxe par-dessus les prototypes pour que les gens comme toi (venant de Python/Java) ne pleurent pas.
Syntaxe Comparée
Python
class Chien:
def __init__(self, nom):
self.nom = nom
def aboyer(self):
print(f"{self.nom} fait Wouf !")
Javascript
class Chien {
constructor(nom) { // Équivalent de __init__
this.nom = nom; // 'this' est l'instance (comme 'self')
}
aboyer() { // Pas besoin de 'function' ni de 'self' en argument
console.log(`${this.nom} fait Wouf !`);
}
}
const medor = new Chien("Médor"); // 'new' est OBLIGATOIRE
medor.aboyer();
⚠️ Différence : En JS, on n'a pas (encore) d'attributs privés natifs supportés partout (ça arrive avec #attribut), et self n'existe pas en argument.