ES6 - API Reflect

ES6 introduit de nouvelles fonctionnalités autour de la méta-programmation qui implique d'inspecter ou de modifier la structure du programme, ou de changer la façon dont les choses fonctionnent dans le langage lui-même.

Voici les trois formes de métaprogrammation -

  • Introspection- L'introspection signifie un programme rassemblant des informations sur lui-même. Quelques exemples d'opérateurs JavaScript utilisés pour l'introspection sonttypeof, instanceof etc.

  • Self-modification- L'auto-modification fait référence à la modification de la structure d'un programme lors de l'exécution. Il s'agit d'accéder ou de créer de nouvelles propriétés au moment de l'exécution. En d'autres termes, l'auto-modification, c'est quand un code se modifie.

  • Intercession- fait référence au code modifiant le comportement par défaut d'un langage de programmation. L'intercession consiste à modifier la sémantique du langage de programmation ou à ajouter de nouvelles constructions au programme lors de l'exécution.

ES6 présente l'interface de programmation d'application Reflect (API Reflect) et l'API proxy qui prend en charge la métaprogrammation.

Programmation méta avec l'API Reflect

L'API Reflect dans ES6 nous permet d'inspecter ou de modifier les classes, objets, propriétés et méthodes d'un programme au moment de l'exécution. leReflectL'API fournit un objet Reflect global qui possède des méthodes statiques pouvant être utilisées pour l'introspection. Ces méthodes sont utilisées pour découvrir des informations de bas niveau sur le code. L'API Reflect peut être utilisée pour créer des cadres de test d'automatisation qui examinent et introspectent le programme au moment de l'exécution.

Certaines méthodes couramment utilisées de l'objet Reflect sont données ci-dessous -

Sr.Non Méthode et description
1 Reflect.apply ()

Appelle une fonction cible avec des arguments comme spécifié par le paramètre args

2 Reflect.construct ()

Équivaut à appeler de nouveaux objets cibles (... args) d'une classe

3 Reflect.get ()

Une fonction qui renvoie la valeur des propriétés.

4 Reflect.set ()

Une fonction qui attribue des valeurs aux propriétés. Renvoie un Boolean qui est vrai si la mise à jour a réussi.

5 Reflect.has ()

L'opérateur in en tant que fonction. Renvoie une valeur booléenne indiquant s'il existe une propriété propre ou héritée.