As follows, we define the Week enumeration:
var WeekDay = {};
WeekDay.Sunday = 0;
WeekDay.Monday = 1;
WeekDay.Tuesday = 2;
WeekDay.Wedesay = 3;
WeekDay.Thursday = 4;
WeekDay.Friday = 5;
WeekDay.Saturday = 6;
}
Of course, we have a more intuitive way. Take defining the DOM document node type as an example. The definition is as follows:
var Node = {
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
}
}
Similar to C-like languages, the attribute values corresponding to the enumerations in the above two examples are all integers. You may be thinking, can it be defined as another type? To answer this question, we must first know the principle of our enumeration implementation. As mentioned earlier, this is implemented using JSON, and JSON can use any type of value! So, enumerations in JS can be any type of value. The following takes the String type as an example:
var Color = {
Color1: 'red',
Color2: 'green',
Color3: 'white',
Color4: 'black'
}
}
Define a PersonList enumeration with a more complex type as follows:
var PersonList = {
ZhangSan: {
Id: 1,
Name: 'ZhangSan',
Gender: 'man'
},
LiSi: {
Id: 2,
Name: 'LiSi',
Gender: 'woman'
},
ZhaoWu: {
Id: 3,
Name: 'ZhaoWu',
Gender: 'man'
}
}
}