1
0

09. Objets - \"classes\".md 1.2 KB

On peut définir des "classes" en JS. Mais elles fonctionnent un peu différemment des autres langages objets !
function Personne(nom) {
  this.nom = nom;
}
Personne.prototype.afficheNom = function() {
  console.log("Je suis", this.nom);
}
var luke = new Personne('Luke Skywalker');
var leia = new Personne('Leia Organa Solo');
luke.afficheNom();
leia.afficheNom();
  • Le "constructeur", qui définit la "classe", est une simple fonction !
  • On ajoute des méthodes à la classe en les ajoutant à la propriété prototype de la fonction/constructeur.
  • Au passage, ça signifie qu'une fonction est aussi un objet !

Ne te prends pas trop la tête avec ça pour l'instant ! Sache juste que "ça existe", et que ça permet de créer des objets à partir d'un certain "modèle" (d'où le terme de prototype).

En fait, ES6, le JavaScript nouvelle génération, supporte une syntaxe de déclaration de classe plus proche de celles de Java, PHP, etc... Mais qui en arrière-plan, est basé sur cette approche "prototypale". Il est donc utile de la connaître, d'autant que beaucoup de projets restent basés sur ES5, la génération précédente de JS !