logo

Énumérations en JavaScript

Énumérations en JavaScript sont un moyen de définir un ensemble de constantes nommées, souvent utilisées pour représenter une collection de valeurs liées. Bien que JavaScript ne prenne pas en charge les énumérations, des fonctionnalités similaires peuvent être obtenues en utilisant des objets ou des variables const pour améliorer la lisibilité et la maintenabilité du code.

Dans Javascript , Les énumérations ou les énumérations sont utilisées pour représenter un ensemble fixe de valeurs nommées. Cependant, les énumérations ne sont pas natives de JavaScript, elles sont donc généralement implémentées à l'aide d'objets ou de tableaux gelés.

Pour garantir l'immuabilité des énumérations en JavaScript, vous pouvez suivre ces directives :



ml en onces

Méthode Object.freeze() :

Une façon de créer un objet de type Enum consiste à définir un objet JavaScript simple avec des valeurs de propriété constantes, puis à utiliser Objet.freeze() pour empêcher toute modification ultérieure. Cela garantira que l’objet et ses propriétés ne peuvent pas être modifiés ou mutés. Vous pouvez utiliser le Objet.freeze() méthode pour empêcher toute modification de l’objet. Une fois qu'un objet est gelé, vous ne pouvez ajouter, modifier ou supprimer aucune de ses propriétés. Vous pouvez utiliser cette méthode pour créer un objet immuable qui représente votre Enum.

Syntaxe:

Object.freeze()>

Méthode Object.defineProperty() :

Vous pouvez utiliser la méthode Object.defineProperty() pour définir des propriétés qui ne peuvent pas être modifiées, ajoutées ou supprimées. Vous pouvez utiliser cette méthode pour créer une propriété en lecture seule pour chaque valeur Enum. Vous pouvez utiliser la méthode Object.defineProperty() pour définir des propriétés qui ne peuvent pas être modifiées, ajoutées ou supprimées. Vous pouvez utiliser cette méthode pour créer une propriété en lecture seule pour chaque valeur Enum.

acteur chiranjeevi

Utiliser Manuscrit : TypeScript est un sur-ensemble de JavaScript qui inclut la prise en charge des Enums. À l'aide de TypeScript, vous pouvez définir des énumérations de manière à garantir leur immuabilité.

Exemple 1: Dans cet exemple, nous créons un objet Enum appelé DaysOfWeek en utilisant Object.freeze(). La méthode Object.freeze() rend l'objet immuable, nous ne pouvons donc pas ajouter, modifier ou supprimer des propriétés de l'objet.

Javascript
const DaysOfWeek = Object.freeze({  SUNDAY: 0,  MONDAY: 1,  TUESDAY: 2,  WEDNESDAY: 3,  THURSDAY: 4,  FRIDAY: 5,  SATURDAY: 6 }); // Try to modify the enum // This will not change the Sunday variable DaysOfWeek.SUNDAY = 7;  console.log(DaysOfWeek.SUNDAY);>

Sortir:

0>

Symbole ES6 :

Une autre approche pour créer un Enum en JavaScript consiste à utiliser les symboles ES6. Les symboles sont des identifiants uniques qui ne peuvent pas être dupliqués et peuvent être utilisés pour définir des valeurs constantes garanties uniques et immuables.

Exemple: Dans cet exemple, nous définissons une énumération appelée myEnum en utilisant Object.freeze() pour empêcher toute modification de l'objet. Nous utilisons Symbol() pour créer des symboles uniques pour chaque valeur d'énumération.

ensemble c++
Javascript
const myEnum = Object.freeze({  FOO: Symbol('foo'),  BAR: Symbol('bar'),  BAZ: Symbol('baz') }); console.log(myEnum.FOO); // Symbol(foo) // Attempting to modify the enum // values will have no effect myEnum.FOO = Symbol('newFoo'); console.log(myEnum.FOO); // Symbol(foo) // Adding a new property to the enum // object will also have no effect myEnum.QUX = Symbol('qux'); console.log(myEnum.QUX); // undefined>

Sortir:

Symbol(foo) Symbol(foo) undefined>

Utiliser une fermeture :

Vous pouvez également utiliser une fermeture pour créer un Enum. Une fermeture est une fonction qui a accès aux variables dans la portée de sa fonction externe. En créant une fonction interne qui renvoie une valeur, nous pouvons rendre la variable dans la portée de la fonction externe en lecture seule.

Exemple: Dans cet exemple, nous utilisons une fermeture pour créer un objet appelé DaysOfWeek. L'objet jours est défini dans la portée de la fonction externe et n'est pas accessible depuis l'extérieur de la fonction. La fonction interne get renvoie la valeur de la propriété portant le nom donné à partir de l'objet jours. L'objet jours n'étant pas directement accessible, il ne peut pas être modifié depuis l'extérieur de la fermeture.

Javascript
const DaysOfWeek = (function () {  const days = {  SUNDAY: 0,  MONDAY: 1,  TUESDAY: 2,  WEDNESDAY: 3,  THURSDAY: 4,  FRIDAY: 5,  SATURDAY: 6  };  return {  get: function (name) {  return days[name];  }  }; })(); // Try to modify the enum // This will not have any effect DaysOfWeek.SUNDAY = 7;  console.log(DaysOfWeek.get('SUNDAY')); // Output: 0>

Sortir:

0>