javascript模擬枚舉的簡單實(shí)例
如下,我們來定義Week的枚舉:
if(typeof WeekDay == "undefined"){
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); // -----> Output: 1
當(dāng)然,我們有更為直觀的方式。以定義DOM文檔節(jié)點(diǎn)類型為例,定義方式如下:
if(typeof Node == "undefined"){
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
}
}
測試如下:
alert(document.nodeType == Node.DOCUMENT_NODE); // -----> Output: true
說明,以上Node定義可作為糾正IE不支持DOM節(jié)點(diǎn)類型常量用(其他主流瀏覽器均支持)。
與類C語言類似,以上2個(gè)例子的枚舉對應(yīng)屬性值均為整形。你可能想到,難道還能定義成別的類型?要回答這個(gè)問題,得先知道咱們這個(gè)枚舉實(shí)現(xiàn)的原理。前面說到,這里是用JSON來實(shí)現(xiàn)的,而JSON可以使用任何類型的值!所以,Js中的枚舉可以是任何類型的值。以下以String類型為例:
if(typeof Color == "undefined"){
var Color = {
Color1: 'red',
Color2: 'green',
Color3: 'white',
Color4: 'black'
}
}
測試如下:
alert(Color.Color1); // -----> Output: red
以更為復(fù)雜的類型來定義一個(gè)PersonList枚舉如下:
if(typeof PersonList == "undefined"){
var PersonList = {
ZhangSan: {
Id: 1,
Name: 'ZhangSan',
Gender: 'man'
},
LiSi: {
Id: 2,
Name: 'LiSi',
Gender: 'woman'
},
ZhaoWu: {
Id: 3,
Name: 'ZhaoWu',
Gender: 'man'
}
}
}
測試結(jié)果如下圖:
相關(guān)文章
微信小程序canvas.drawImage完全顯示圖片問題的解決
這篇文章主要介紹了微信小程序canvas.drawImage完全顯示圖片問題的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11JS利用cookies設(shè)置每隔24小時(shí)彈出框
這篇文章主要介紹了利用cookies設(shè)置每隔24小時(shí)彈出框的實(shí)例代碼,需要的朋友可以參考下2017-04-04關(guān)于JavaScript中事件綁定的方法總結(jié)
下面小編就為大家?guī)硪黄狫avaScript中事件綁定的方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10JavaScript實(shí)現(xiàn)九宮格點(diǎn)擊變色效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)九宮格點(diǎn)擊變色效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08JavaScript算法系列之快速排序(Quicksort)算法實(shí)例詳解
這篇文章主要介紹了JavaScript算法系列之快速排序(Quicksort)算法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-09-09JavaScript實(shí)現(xiàn)焦點(diǎn)進(jìn)入文本框內(nèi)關(guān)閉輸入法的核心代碼
這篇文章給大家分享js實(shí)現(xiàn)焦點(diǎn)進(jìn)入文本框內(nèi)關(guān)閉輸入法,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-09-09js之input[type=file]選擇重復(fù)的文件,無法觸發(fā)change事件問題
這篇文章主要介紹了js之input[type=file]選擇重復(fù)的文件,無法觸發(fā)change事件問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05PNGHandler-借助JS讓PNG圖在IE下實(shí)現(xiàn)透明(包括背景圖)
PNGHandler-借助JS讓PNG圖在IE下實(shí)現(xiàn)透明(包括背景圖)...2007-08-08Bootstrap Paginator分頁插件與ajax相結(jié)合實(shí)現(xiàn)動態(tài)無刷新分頁效果
這篇文章主要介紹了Bootstrap Paginator分頁插件與ajax相結(jié)合實(shí)現(xiàn)動態(tài)無刷新分頁效果,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-05-05