다음과 같이 Week 열거형을 정의합니다.
다음과 같이 코드 코드를 복사합니다.
if(typeof WeekDay == "정의되지 않음"){
var WeekDay = {};
WeekDay.Sunday = 0;
WeekDay.Monday = 1;
WeekDay.Tuesday = 2;
WeekDay.Wedesay = 3;
WeekDay.Thursday = 4;
WeekDay.Friday = 5;
WeekDay.Saturday = 6;
}
테스트는 다음과 같습니다.
Alert(WeekDay.Monday); // -----> 출력: 1
물론 더 직관적인 방법이 있습니다. DOM 문서 노드 유형 정의를 예로 들면 정의는 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
if(노드 유형 == "정의되지 않음"){
var 노드 = {
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,
표기법_노드: 12
}
}
테스트는 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
Alert(document.nodeType == Node.DOCUMENT_NODE); // -----> 출력: true
위의 노드 정의는 IE가 DOM 노드 유형 상수를 지원하지 못하는 문제를 수정하는 데 사용될 수 있습니다(다른 모든 주류 브라우저는 이를 지원합니다).
C 계열 언어와 마찬가지로 위 두 예의 열거형에 해당하는 속성 값은 모두 정수입니다. 다른 유형으로 정의할 수 있을까?라고 생각할 수도 있습니다. 이 질문에 대답하려면 먼저 열거형 구현의 원리를 알아야 합니다. 앞서 언급했듯이 이는 JSON을 사용하여 구현되며 JSON은 모든 유형의 값을 사용할 수 있습니다! 따라서 JS의 열거형은 모든 유형의 값이 될 수 있습니다. 다음은 String 유형을 예로 들어 설명합니다.
다음과 같이 코드 코드를 복사합니다.
if(색상 유형 == "정의되지 않음"){
var 색상 = {
색상 1: '빨간색',
색상 2: '녹색',
Color3: '흰색',
Color4: '블랙'
}
}
테스트는 다음과 같습니다.
Alert(Color.Color1); // -----> 출력: 빨간색
다음과 같이 더 복잡한 유형으로 PersonList 열거형을 정의합니다.
다음과 같이 코드 코드를 복사합니다.
if(PersonList 유형 == "정의되지 않음"){
var 개인 목록 = {
장산: {
아이디: 1,
이름: '장산',
성별: '남자'
},
리시: {
아이디: 2,
이름: '리시',
성별: '여성'
},
자오 우: {
아이디: 3,
이름: '자오우',
성별: '남자'
}
}
}
테스트 결과는 다음과 같습니다.