国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript模擬枚舉的簡單實例

2019-11-20 20:59:27
字體:
來源:轉載
供稿:網友

如下,我們來定義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'

}
}
}


測試結果如下圖:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连州市| 皮山县| 健康| 邹平县| 阳西县| 平山县| 柞水县| 屯昌县| 平谷区| 虞城县| 博湖县| 漠河县| 卓资县| 六安市| 建瓯市| 双辽市| 鄂托克旗| 买车| 龙井市| 临汾市| 昭通市| 镇平县| 长丰县| 祁连县| 永修县| 平利县| 维西| 许昌市| 南木林县| 高阳县| 上虞市| 大连市| 河南省| 东至县| 多伦县| 沁阳市| 石屏县| 肥东县| 肥东县| 宁乡县| 新丰县|