javascript模拟枚举的简单实例

 更新时间:2014年03月06日 09:11:37   作者:  
本篇文章主要是对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'

}
}
}


测试结果如下图:

相关文章

  • jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码

    jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码

    这篇文章主要介绍了jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码,需要的朋友可以参考下
    2017-08-08
  • javascript获取网页宽高方法汇总

    javascript获取网页宽高方法汇总

    本文给大家汇总介绍了下javascript获取网页宽高的方法,以及各个浏览器下不同方法获取到的值的对比,有需要的小伙伴可以参考下。
    2015-07-07
  • 判断数组的最佳方法(推荐)

    判断数组的最佳方法(推荐)

    下面小编就为大家带来一篇js判断数组的最佳方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 跟我学习javascript的定时器

    跟我学习javascript的定时器

    跟我学习javascript的定时器,告诉大家具体的使用方法,并向大家提出了一个消息要求,制作一个定时器,有没有朋友感兴趣,挑战一下
    2015-11-11
  • js如何将元素滚动到可见区域

    js如何将元素滚动到可见区域

    文章介绍了如何使用scrollIntoViewIfNeeded方法将元素滚动到可见区域,以及如何通过配置对象控制滚动行为,还提供了一个纯JavaScript的解决方案,可以实现类似的功能
    2024-12-12
  • easyui关于validatebox实现多重规则验证的方法(必看)

    easyui关于validatebox实现多重规则验证的方法(必看)

    下面小编就为大家带来一篇easyui关于validatebox实现多重规则验证的方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • uni-app的iPhonex底部安全区域解决方案

    uni-app的iPhonex底部安全区域解决方案

    这篇文章主要为大家介绍了uni-app的iPhonex底部安全区域解决方案示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • JS实现求5的阶乘示例

    JS实现求5的阶乘示例

    这篇文章主要介绍了JS实现求5的阶乘,结合实例形式分析了javascript基于循环及递归等操作实现阶乘运算的相关技巧,需要的朋友可以参考下
    2019-01-01
  • 基于Javascript实现文件实时加载进度的方法

    基于Javascript实现文件实时加载进度的方法

    不知道大家有没有发现在现在的移动页面上,有很多情况需要加载大量的资源。但是移动端的访问速度和pc还是有很大的差距,有些时候需要一些取巧的方式来提升用户体验,而实时显示加载进度就是其中一种。这篇文章就给大家分享了Javascript实现文件实时加载进度的方法。
    2016-10-10
  • JS根据奖品权重计算中奖概率

    JS根据奖品权重计算中奖概率

    这篇文章主要介绍了JS计算中奖概率实现抽奖的方法,对算法感兴趣的同学,可以参考下
    2021-05-05

最新评论