Comme suit, on définit l'énumération Semaine :
if(typeof WeekDay == "undefined"){
var JourSemaine = {};
JourSemaine.Dimanche = 0;
JourSemaine.Lundi = 1;
JourSemaine.Mardi = 2;
WeekDay.Wedesay = 3;
JourSemaine.Jeudi = 4;
JourSemaine.Vendredi = 5;
JourSemaine.Samedi = 6;
}
Le test est le suivant :
alert(WeekDay.Monday); // ----->
Bien sûr, nous avons une manière plus intuitive. Prenons comme exemple la définition du type de nœud de document DOM. La définition est la suivante :
if(typeof Node == "undefined"){
var Noeud = {
ELEMENT_NODE : 1,
ATTRIBUTE_NODE : 2,
TEXT_NODE : 3,
CDATA_SECTION_NODE : 4,
ENTITY_REFERENCE_NODE : 5,
ENTITY_NODE : 6,
PROCESSING_INSTRUCTION_NODE : 7,
COMMENT_NODE : 8,
DOCUMENT_NODE : 9,
DOCUMENT_TYPE_NODE : 10,
DOCUMENT_FRAGEMENT_NODE : 11,
NOTATION_NODE : 12
}
}
Le test est le suivant :
alert(document.nodeType == Node.DOCUMENT_NODE); // -----> Sortie : true
Notez que le ci-dessus La définition de nœud peut être utilisée comme correction pour les constantes de type de nœud IE DOM qui ne sont pas prises en charge (tous les autres navigateurs grand public le prennent en charge).
Semblable aux langages de type C, les valeurs d'attribut correspondant aux énumérations dans les deux exemples ci-dessus sont toutes des nombres entiers. Vous vous demandez peut-être si cela peut être défini comme un autre type ? Pour répondre à cette question, il faut d’abord connaître le principe de mise en œuvre de notre dénombrement. Comme mentionné précédemment, ceci est implémenté en utilisant JSON, et JSON peut utiliser n'importe quel type de valeur ! Ainsi, les énumérations en JS peuvent être n’importe quel type de valeur. Ce qui suit prend le type String comme exemple :
if(typeof Color = = "indéfini"){
var Couleur = {
Couleur1 : 'rouge',
Couleur2 : 'vert',
Couleur3 : 'blanc',
Color4 : 'noir'
}
}
Le test est le suivant :
alert(Color.Color1); Sortie : rouge
Définissez une énumération PersonList avec un type plus complexe comme suit :
if(typeof PersonList == "undefined"){
var ListePersonne = {
ZhangSan : {
Identifiant : 1,
Nom : 'ZhangSan',
Sexe : 'homme'
},
LiSi : {
Identifiant : 2,
Nom : 'LiSi',
Genre : 'femme'
},
ZhaoWu : {
Identifiant : 3,
Nom : 'ZhaoWu',
Sexe : 'homme'
}
}
}
Les résultats des tests sont les suivants :