次のように、Week 列挙体を定義します。
次のようにコードをコピーします。
if(typeof WeekDay == "未定義"){
var WeekDay = {};
平日.日曜日 = 0;
WeekDay.Monday = 1;
WeekDay. Tuesday = 2;
WeekDay.Wedesay = 3;
平日.木曜日 = 4;
WeekDay.Friday = 5;
WeekDay.Saturday = 6;
}
テストは次のとおりです。
アラート(WeekDay.Monday); // -----> 出力: 1
もちろん、もっと直観的な方法もあります。 DOM ドキュメント ノード タイプの定義を例に挙げると、定義は次のようになります。
次のようにコードをコピーします。
if(ノードのタイプ == "未定義"){
var ノード = {
ELEMENT_NODE: 1、
属性ノード: 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
}
}
テストは次のとおりです。
次のようにコードをコピーします。
alert(document.nodeType == Node.DOCUMENT_NODE); // -----> 出力: true
上記のノード定義を使用すると、IE が DOM ノード タイプ定数をサポートできない問題を修正することができることに注意してください (他のすべての主流ブラウザはこれをサポートしています)。
C 系言語と同様、上記 2 つの例の列挙型に対応する属性値はすべて整数です。これを別のタイプとして定義できるのではないかと考えているかもしれません。この質問に答えるには、まず列挙実装の原理を知る必要があります。前述したように、これは JSON を使用して実装されており、JSON では任意のタイプの値を使用できます。したがって、JS の列挙には任意のタイプの値を指定できます。以下では、例として String 型を取り上げます。
次のようにコードをコピーします。
if(色の種類 == "未定義"){
var カラー = {
カラー1: '赤'、
カラー2: 'グリーン'、
カラー3: '白'、
カラー4:「ブラック」
}
}
テストは次のとおりです。
alert(Color.Color1); // -----> 出力: 赤
次のように、より複雑な型で PersonList 列挙を定義します。
次のようにコードをコピーします。
if(人物リストの種類 == "未定義"){
var 人物リスト = {
チャンサン: {
ID:1、
名前:「張三」、
性別:「男」
}、
リシ: {
ID:2、
名前:「リシ」、
性別:「女性」
}、
趙武: {
ID:3、
名前:「趙武」、
性別:「男」
}
}
}
テスト結果は次のとおりです。