Développeur Front End ES6/React

Je m'appelle Nicolas Wendling, je suis Développeur Front-End depuis plus de 4 ans. Intégrateur Web depuis plus de 10 ans. Spécialiste en CSS, JS, ReactJS et NextJS.

J'ai travaillé sur plus de 50 projets Web durant ces 15 dernières années en accompagnant des marques, des e-commerces et des startups.

Vous avez besoin d'un Développeur Frontend expérimenté pour vous accompagner sur votre projet, n'hésitez pas à me contacter !

Différence entre ES5 et ES6 en Programmation Orientée Objet

L’essor de Javascript a amené le besoin de pouvoir structurer le code. Les développeurs ont donc commencé à utiliser des fonctions pour implémenter des fonctionnalités de type classe en ES5, car il n’y avait pas de mot-clé de classe natif. Toutefois, avec l’avènement d’ES6, un nouveau mot-clé de classe a été introduit pour fournir une meilleure abstraction et une syntaxe plus propre pour définir des classes en JavaScript. Dans cet article, nous allons voir la différence entre ES5 et ES6 classes.

ES5 (ECMAScript 5) et ES6 (ECMAScript 6) sont des versions de JavaScript, qui est un langage de script populaire utilisé pour créer des pages web interactives. Bien qu’ils aient tous deux la même syntaxe de base, il y a quelques différences importantes entre les deux versions.

Cet article compare les différences entre les classes en JavaScript ES5 et les classes en JavaScript ES6.

En ES5, les classes sont définies en utilisant des fonctions constructeurs. Les méthodes sont ajoutées à l’objet prototype de la fonction constructeur, tandis que les propriétés sont définies à l’intérieur du constructeur. Les classes en ES5 ne prennent pas en charge l’héritage de classe, donc l’héritage doit être réalisé en utilisant la propriété prototype de la fonction constructeur.

En ES6, les classes sont définies en utilisant le mot-clé class. Les méthodes et les propriétés sont définis directement dans la classe, plutôt que d’être définis séparément. ES6 prend également en charge l’héritage de classe, qui peut être accompli en utilisant le mot-clé extends.

L’article explique également comment créer des instances de classes, utiliser des méthodes et des propriétés, et comment hériter de classes en ES5 et ES6.

En résumé, l’article compare les différences entre les classes en JavaScript ES5 et ES6 et montre comment les utiliser pour créer des instances de classes, utiliser des méthodes et des propriétés, et comment hériter de classes.

Les nouvelles fonctionnalités d’ES6

ES6 introduit de nombreuses fonctionnalités utiles qui facilitent la vie des développeurs JavaScript. Voici quelques-unes des principales fonctionnalités d’ES6 :

Pas de mot-clé de classe en ES5

En ES5, les développeurs utilisaient des fonctions pour implémenter des fonctionnalités de classe, car il n’y avait pas de mot-clé de classe natif. Ils utilisaient alors la propriété prototype de la fonction pour étendre les fonctionnalités de l’objet. Cela signifiait que chaque fois qu’un développeur voulait ajouter une nouvelle fonctionnalité à une classe, il devait le faire via la propriété prototype.

Utilisation de la propriété prototype

La propriété prototype a une utilité très importante en JavaScript. Elle permet d’ajouter des méthodes à tous les objets d’un même type, ce qui est particulièrement utile pour les objets JSON. Dans l’exemple ci-dessous, nous allons ajouter une méthode pour obtenir les clés d’un objet JSON en utilisant la propriété prototype :

if (!Object.keys) {
  Object.keys = function (obj) {
    var keys = [];
    for (var i in obj) {
      if (obj.hasOwnProperty(i)) {
        keys.push(i);
      }
    }
    return keys;
  };
}

Avec cette méthode, nous pouvons obtenir les clés d’un objet JSON en appelant Object.keys(someObj). Il n’y a pas de méthode native someObj.keys() en JavaScript, contrairement à certains autres langages tels que Python.

Les classes en ES6

ES6 a introduit le mot-clé de classe natif, ce qui facilite grandement la création de classes. La syntaxe est beaucoup plus propre et plus facile à comprendre que l’utilisation de fonctions.

class Person {
  constructor(name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
  }
}

class Teacher extends Person {
  constructor(name, age, gender, subject) {
    super(name, age, gender);
    this.subject = subject;
  }
}

class Student extends Person {
  constructor(name, age, gender, marks) {
    super(name, age, gender);
    this.marks = marks;
  }
}

Dans l’exemple ci-dessus, nous créons une classe Person avec trois propriétés : name, age et gender. Nous créons ensuite deux classes supplémentaires, Teacher et Student, qui étendent la classe Person et ajoutent une propriété supplémentaire chacune.