Enum en Javascript... [Résolu]

PolarMan 6 Messages postés samedi 19 novembre 2005Date d'inscription 3 mars 2006 Dernière intervention - 19 nov. 2005 à 00:20 - Dernière réponse :  OléOlé
- 14 sept. 2015 à 11:04
Bonjour a tous
Y a-t-il en Javascript un enumerateur equivalent a "enum" en C & C++ ?
Si la reponse est "non", quelqu'un aurait-il implemente un objet permettant de "singer" cet "enum" ou eventuellement un "set" ?
Merci
Afficher la suite 

8 réponses

Répondre au sujet
triumphs 19 Messages postés dimanche 30 mai 2004Date d'inscription 30 septembre 2013 Dernière intervention - 20 avril 2012 à 19:00
+1
Utile
1
Voici une solution à ce problème: Enum pour JavaScript

Ce n'est pas la meilleure, mais je la trouve plus proche du comportement du type Enum en Java.

Bon code!

TriumpHS
Cette réponse vous a-t-elle aidé ?  
Ok. Et s'est franchement bien expliqué!
Commenter la réponse de triumphs
Anthed 152 Messages postés dimanche 20 février 2005Date d'inscription 17 janvier 2014 Dernière intervention - 19 nov. 2005 à 01:36
0
Utile
Précise ton besoin, à quoi pourrait te servir un énumérateur ?
A+.
Commenter la réponse de Anthed
PolarMan 6 Messages postés samedi 19 novembre 2005Date d'inscription 3 mars 2006 Dernière intervention - 20 nov. 2005 à 02:07
0
Utile
En fait j'ai l'habitude de programmer en C++ ou VB mais je debute en Javascript. En C et autres, le type énumération de données "enum" permet d'obtenir des identificateurs mnémoniques pour un ensemble de valeurs entières, initialisées ou non, par exemple :
enum SAISON {printemps, ete, automne, hiver};enum TAlign {AlignNone -1,AlignLeft 1, AlignTop = 2, AlignRight = 4, AlignBottom = 8};
Bon, pratiquement c'est cette derniere structure dont j'ai besoin. Un type "alignement" de layers dans une classe de gestion de l'espace client d'une page web (ClientArea). Le but est bien sur de pouvoir gerer les redimensionnements de fenetre...
Bien sur je pourrais definir tout simplement des constantes, mais en perdant en lisibilite et structuration du programme, et egalement qq avantages fonctionnels et structurels des "enum", comme l'initialisation automatique des valeurs non initialisees implicitement, par exemple.
Est-ce assez clair ?

PolarMan
Commenter la réponse de PolarMan
Anthed 152 Messages postés dimanche 20 février 2005Date d'inscription 17 janvier 2014 Dernière intervention - Modifié par kazma le 14/09/2015 à 13:13
0
Utile
Ah, je vois, tu peux peut-être remplacer cette notion par un objet possédant les attributs correspondant à ton énumération :

var alignObject = new AlignObject();

function AlignObject()
{
   this.alignNone = -1;
   this.alignLeft = 1;
   etc
}


Comme ça tu peux remplacer l'accès à ton énumérateur par un accès à l'attribut correspondant de alignObject.

A+.
Commenter la réponse de Anthed
PolarMan 6 Messages postés samedi 19 novembre 2005Date d'inscription 3 mars 2006 Dernière intervention - 21 nov. 2005 à 00:38
0
Utile
Yep, j'avais pense a un object...
Le probleme est que, pour chaque "equivalent-enum", je devrai coder un nouvel object...
Merci pour ton aide, les grands esprits se rencontrent.
Mais vu qu'il n'y a pas d'equivalent-enum, je vais utiliser des constantes, et plus tard si j'ai le temps je coderai un object generique, avec un Array dans le constructeur ou des params ouverts (si cela existe en JS), que je deriverai eventuellement pour d'autres appli.
Ciao & Takk

PolarMan
Commenter la réponse de PolarMan
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - Modifié par kazma le 14/09/2015 à 13:14
0
Utile
tu peux faire comme ca pour des enums :


var tonEnum = 
{
      enum1 = 1, 
      enum2 = 2
}

puis ensuite 

alert(tonEnum.enum1) // retournera 1

tu peux aussi te servir de ca pour faire des namespaces 

var tonNamespace = 
{
      tafunction : function(){alert('truc');}
}

etc... 

var tonNamespace = 
{
      tafunction:function{ alert(tonNamespace.enums.align.left)},
      enums: 
      {
            align : 
            {
               left:1, 
               right:2
            }
       }
}

tonNamespace.taFunction(); //affichera 1 :)



<HR>



Cyril - MVS - MCP ASP
Commenter la réponse de jesusonline
oliteine 15 Messages postés lundi 30 août 2004Date d'inscription 11 février 2008 Dernière intervention - Modifié par kazma le 14/09/2015 à 13:14
0
Utile
Merci pour l'astuce attention juste aux ':' au lieu du '='

var tonEnum = 
{
      enum1 : 1, 
      enum2 : 2
}


ol
Commenter la réponse de oliteine

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.