A seguir, definimos a enumeração da Semana:
Copie o código do código da seguinte forma:
if(typeof WeekDay == "indefinido"){
var DiaSemana = {};
DiaSemana.Domingo = 0;
DiaSemana.Segunda-feira = 1;
DiaDaSemana.Terça-feira = 2;
WeekDay.Wedesay = 3;
DiaDaSemana.Quinta-feira = 4;
DiaSemana.Sexta-feira = 5;
DiaSemana.Sábado = 6;
}
O teste é o seguinte:
alerta(WeekDay.Monday); // -----> Saída: 1
Claro, temos uma forma mais intuitiva. Tomando como exemplo a definição do tipo de nó do documento DOM, a definição é a seguinte:
Copie o código do código da seguinte forma:
if(typeof Node == "indefinido"){
var Nó = {
ELEMENT_NODE: 1,
ATRIBUTO_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
}
}
O teste é o seguinte:
Copie o código do código da seguinte forma:
alerta(document.nodeType == Node.DOCUMENT_NODE); // -----> Saída: verdadeiro
Observe que a definição de nó acima pode ser usada para corrigir a falha do IE em suportar constantes de tipo de nó DOM (todos os outros navegadores convencionais suportam).
Semelhante às linguagens do tipo C, os valores dos atributos correspondentes às enumerações nos dois exemplos acima são todos inteiros. Você pode estar pensando: pode ser definido como outro tipo? Para responder a esta questão, devemos primeiro conhecer o princípio da nossa implementação de enumeração. Conforme mencionado anteriormente, isso é implementado usando JSON, e JSON pode usar qualquer tipo de valor! Portanto, enumerações em JS podem ser qualquer tipo de valor. O seguinte toma o tipo String como exemplo:
Copie o código do código da seguinte forma:
if(typeof Cor == "indefinido"){
var Cor = {
Cor1: 'vermelho',
Color2: 'verde',
Color3: 'branco',
Cor4: 'preto'
}
}
O teste é o seguinte:
alert(Color.Color1); // -----> Saída: vermelho
Defina uma enumeração PersonList com um tipo mais complexo da seguinte maneira:
Copie o código do código da seguinte forma:
if(typeof PersonList == "indefinido"){
var ListaPessoas = {
ZhangSan: {
identificação: 1,
Nome: 'ZhangSan',
Gênero: 'homem'
},
LiSi: {
identificação: 2,
Nome: 'LiSi',
Gênero: 'mulher'
},
Zhao Wu: {
identificação: 3,
Nome: 'Zhao Wu',
Gênero: 'homem'
}
}
}
Os resultados do teste são os seguintes: