js中 '枚举' 的使用
习惯了.net编程,c#的枚举很好用,无论管理上,可读上,易用上都非常强大。
JS作为弱类型解析语言,并没有严格的数据类型限定。
“枚举”在JS中并不存在的。
通过定义上,枚举是一种类常量的存在,只不过vs.net可以自动导航到枚举的数据类型存在,并且自动给与用户提供选择。
vs.net2008增加了js的导航,那么用json模拟枚举功能就有存在的必要了。
只是,JS的导航还无法做到判断“枚举”类型,所以无法默认就提供“枚举”选项,不过从功能上可读性上管理上还是远远超过诸如1,2,3,4的表示等等了。
以下为例子(共享方式: 0->不共享,1->我和好友,2->所有人):
//写法1:
var ShareType = ...{OnlyMe : 0
,IAndFriend : 1
,All : 2
};
//写法2:
var ShareType = ...{};
ShareType.OnlyMe = 0;
ShareType.IAndFriend = 1;
ShareType.All = 2;
====================================
一般写在公共的js方法中:
//附件分类
var fileCatalog = {
//预约单
reservation : 0,
//健康告知书
health : 1,
//用车预定
car : 2,
//照会资料
diplomatic : 3,
//理赔资料
claim : 4,
//银行开户
bank : 5,
//其他
others : 6
}
所有页面引用公共js,每个页面的js都可共用公共js
if (type == fileCatalog.reservation) {
reservationFiles.push(fileData);
} else if (type == fileCatalog.car) {
carFiles.push(fileData);
} else if (type == fileCatalog.others) {
otherFiles.push(fileData);
} else if (type == fileCatalog.health) {
healthFiles.push(fileData);
} else if (type == fileCatalog.bank) {
bankFiles.push(fileData);
}
js中 '枚举' 的使用的更多相关文章
- js中的枚举
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. js中基本包装类型的原型属性是不可枚举的 ...
- JS中的可枚举属性与不可枚举属性以及扩展
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. 一.怎么判断属性是否可枚举 js中基本包 ...
- js中以键值对的形式当枚举
js中以键值对的形式当枚举var Penum= { B: "姓名", C: "所属居委", D: "证件号", E: "性别&qu ...
- js中的可枚举属性与不可枚举属性
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. 一.怎么判断属性是否可枚举 js中基本包 ...
- 浅解析js中的对象
浅解析js中的对象 原文网址:http://www.cnblogs.com/foodoir/p/5971686.html,转载请注明出处. 前面的话: 说到对象,我首先想到的是每到过年过节见长辈的时候 ...
- js中arguments的用法
了解这个对象之前先来认识一下javascript的一些功能: 其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载.Javascrip中国每个函数都会有一个Argume ...
- js中的hasOwnProperty()和isPrototypeOf()
js中的hasOwnProperty()和isPrototypeOf() 这两个属性都是Object.prototype所提供:Object.prototype.hasOwnProperty()和Ob ...
- js中undefined,null,NaN的区别
1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型.var a1;var a2 = true;va ...
- [置顶] js中如何复制一个对象,如何获取所有属性和属性对应的值
在js中如何复制一个对象,例如如下一个js对象. 如果知道这个对象的所有属性自然就可以重新new一个,然后对每个属性赋值,就可以做到,但如果不知道呢?如何创建一个内容相同 的对象呢? var obj= ...
随机推荐
- 取消记录tableView选中效果
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self. ...
- 博客迁移到reetsee.com
正如上一篇博客所言.眼下CSDN的博客已经基本完毕它的使命了.感谢CSDN带给我的全部美好回顾. 如今我想尝试一下自己维护一个博客,所以博客的全部内容都迁移到了reetsee.com. 以后博客更新会 ...
- Cocos2d-x 多点触摸
多点触摸的实现步骤与单点触摸类似,setTouchEnabled(true)开启触摸功能,注冊触摸事件,重载多点触摸函数:ccTouchesBegan(開始).ccTouchesMoved(移动).c ...
- Android语音播报、后台播报、语音识别
Android语音播报.后台播报.语音识别 本文介绍使用讯飞语音实现语音播报.语音识别功能. 讯飞开放平台:http://www.xfyun.cn/index.php/default/index 程序 ...
- vue,elementUI切换主题,自定义主题
本文介绍两种elementUI切换主题色的方法 项目示例:http://test.ofoyou.com/theme/ git代码:记得star哦,谢谢 1:官方提供的方法,直接修改scss文件达到修改 ...
- java web项目中资源国际化
有一些网站会有语言栏选项: 选择英文,内容就显示为英文: 选择中文,内容就显示文中文. 这里就用到了国际化资源. 先看效果图: 步骤: 1.建立资源包: mess_en_US.properties ( ...
- 为什么同样的数据,俩人生成的obj和bin文件不一样
http://bbs.csdn.net/topics/270055083 编译器编译的时候可能有些东西依赖时间,或许是优化的原因,如果可以,换个编译器试试,或许两次编译的时候,强制把系统时间调成一个看 ...
- 【转载】大型系统中使用JMS优化技巧
[本文转自:http://www.javabloger.com/article/sun-openmq-jms-large-scale-systems.html] 我们先来看看在Sun OpenMQ系统 ...
- QT笔记 -- (4) 为QLabel添加鼠标响应方法2
1.实现 bool eventFilter(QObject *target,QEvent *event) 函数内容如下: bool eventFilter(QObject *target,QEvent ...
- 初识Git(二)
与我们前一篇随笔一样创建文件夹,init我们创建的文件夹,并且创建一个test.txt文本文件,add文本文件,commit文本文件,接下来在文本文件中添加文本: 与上一次不同的是我们这一次在编辑文件 ...