Classes JavaScript

On a des classes en js depuis 2015, MAIS CE N'EST PAS UNE CLASSE AU SENS DU PHP OU D'AUTRES LANGAGES !
C'est juste une syntaxe plus propre pour faire du prototypage et des héritages

Créer une classe

// on peut créer une classe avec la syntaxe class
class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
}

let person1 = new Person('John', 20);
console.log(person1.name);
console.log(person1.age);

Héritage

// on peut également hériter d'une classe
class Employee extends Person {
    constructor(name, age, job) {
        super(name, age);
        this.job = job;
    }
}

Méthodes statiques

// on peut également créer une methode statique
class Animal {
    crie() {
        return this;
    }
    static mange() {
        return this;
    }
}
  
let obj = new Animal();
obj.crie(); // Animal {}
let crie = obj.crie;
crie(); // undefined

Animal.mange(); // class Animal
let mange = Animal.mange;
mange(); // undefined