萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> javascript模擬枚舉的簡單實例

javascript模擬枚舉的簡單實例

 本篇文章主要是對javascript模擬枚舉的簡單實例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

如下,我們來定義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    當然,我們有更為直觀的方式。以定義DOM文檔節點類型為例,定義方式如下:  代碼如下: 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節點類型常量用(其他主流浏覽器均支持)。   與類C語言類似,以上2個例子的枚舉對應屬性值均為整形。你可能想到,難道還能定義成別的類型?要回答這個問題,得先知道咱們這個枚舉實現的原理。前面說到,這裡是用JSON來實現的,而JSON可以使用任何類型的值!所以,Js中的枚舉可以是任何類型的值。以下以String類型為例:    代碼如下: if(typeof Color == "undefined"){    var Color = {    Color1: 'red',    Color2: 'green',    Color3: 'white',    Color4: 'black'  }  }     測試如下: alert(Color.Color1); // -----> Output: red    以更為復雜的類型來定義一個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'   } } }  
copyright © 萬盛學電腦網 all rights reserved