当前位置: 首页 > news >正文

宁波关键词网站排名网站 改域名

宁波关键词网站排名,网站 改域名,青海网站开发 建设,福建省住房和城乡建设厅网站既然对象是属性的集合#xff0c;那么检测与枚举集合中的属性就是一项重要任务。对此#xff0c;我们来分别看一下ES3和ES5提供的解决方案。 1) ES3枚举方案 示例代码#xff1a; var contacts{ ID:[0,1,2,3,4,5], names:[Zero,One,Two那么检测与枚举集合中的属性就是一项重要任务。对此我们来分别看一下ES3和ES5提供的解决方案。 1)     ES3枚举方案 示例代码 var contacts{     ID:[0,1,2,3,4,5],     names:[Zero,One,Two,Three,Four,Five],     addresses:[     {         Street:ABC,         State: 0     },     {         Street:ABC,         State: 1     },     {         Street:ABC,         State: 2     },     {         Street:ABC,         State: 3     },     {         Street:ABC,         State: 4     },     {         Street:ABC,         State: 5     }     ] }; //ES3 solutions console.log(ID in contacts: ,ID in contacts); console.log(toString in contacts: ,toString in contacts ); for(var key in contacts){     console.log(key: ,key);     console.log(value: ,contacts[key]); } 上面代码的输出结果如下 ID in contacts:  true toString in contacts:  true key:  ID value:  [ 0, 1, 2, 3, 4, 5 ] key:  names value:  [ Zero, One, Two, Three, Four, Five ] key:  addresses value:  [ { Street: ABC, State: 0 },   { Street: ABC, State: 1 },   { Street: ABC, State: 2 },   { Street: ABC, State: 3 },   { Street: ABC, State: 4 },   { Street: ABC, State: 5 } ] 注意 运算符in的左侧是属性名是字符串类型右侧是对象。无论是对象的自有属性还是继承属性中包含这个属性都会返回true。 对象的hasOwnProperty()方法用于检测给定的名字是否是对象的自有属性。对于继承属性则返回false。例如 var  o{a:111,b:222}; o.hasOwnProperty(a);//true o.hasOwnProperty(x);//false不存在此属性 o.hasOwnProperty(toString);//falsetoString是继承属性 propertyIsEnumerable()是hasOwnProperty()方法的增强版本用于检测自有且可枚举的属性。通常JS创建的属性都是可枚举的除非使用ES5中特殊方法改变了属性的可枚举性。例如 var  oinherit({a:111,b:222}); o.x10000; o. propertyIsEnumerable (x);//true o. propertyIsEnumerable (a);//false继承来的属性 Object.prototype. propertyIsEnumerable (toString);//falsetoString是不可枚举的属性   2)     ES5枚举方案 除了使用ES3中的for...in循环方式来枚举对象中的属性外对于前面定义的对象直接量ES5还支持如下的枚举方案 console.log(Object.keys(contacts)); console.log(Object.getOwnPropertyNames(contacts)); 输出结果如下 [ ID, names, addresses ] [ ID, names, addresses ] 其中静态方法Object.keys()返回一个数组这个数组由对象中可枚举的自有属性的名称组成。 静态方法Object. getOwnPropertyNames ()也是返回一个数组这个数组由对象中所有的自有属性的名称组成。注意ES3中无法实现这样的方法因为ES3中无法获取对象的不可枚举的属性。 3)     !和in运算符用于属性存在判断 前面介绍使用in运算符判断指定属性在否存在于某对象中。其实有些简单情况下也可以使用!运算符来决断一个属性是否是undefined。 var oo1new Object({lan:JavaScript,degree:Difficult}); console.log(使用!运算符的例子); console.log(oo1.lan!undefined);  //true console.log(oo1.language!undefined); //false console.log(oo1.toString!undefined); //true 切记只有in运算符能够区分不存在的属性和存在但值为undefined的属性。此时!已经无能为力。参考如下代码片断 var ou{key1:undefined}; console.log(只能使用in运算符的例子); console.log(ou.key1!undefined);//false console.log(ou.key2!undefined);//false console.log(key1 in ou);//true console.log(key2 in ou);//false delete ou.key1; //delete property key1 console.log(key1 in ou);//false 4)     与属性枚举相关的几个工具函数   在本节给出的工具函数中我们把对象看作属性集合所给的图示试图从集合论角度给出这些函数的功能示意。 求并集1 示意图 此工具函数并两个对象中属性的并集但对于相同的属性使用present对象的属性覆盖对象orig中同名属性。 function extend(orig,present){     for(var prop in present){         orig[prop]present[prop];     }     return orig; }   求并集2 示意图 此工具函数并两个对象中属性的并集但对于相同的属性使用保留对象orig中的属性而舍弃present中同名属性。 function merge(orig,present){     for(var prop in present){         if(orig.hasOwnProperty(prop)) continue;         orig[prop]present[prop];     }     return orig; } 求交集1 此工具函数并两个对象中属性的交集但对于相同的属性使用保留对象orig中的属性而舍弃present中同名属性。 function restrict(orig,present) {     for(var prop in orig){         if(!(prop in present)){             delete orig[prop];         }         return orig;     } } 求交集2 此工具函数并两个对象中属性的交集但对于相同的属性使用保留对象orig中的属性而舍弃present中同名属性。因此交集结果同上面“求交集1”但是返回新集合。 function intersection(o,p) {     return restrict(extend({},o),p); } 求集合减法 function subtract(orig,present) {     for (var prop in present) {         delete  orig[prop];     }     return orig; }   求并集3 实际上等同于“求并集1”但是返回一个新对象。 function union(orig,present) {     return extend(extend({},orig),present); } 类似于ES5版本的Object.keys(o) function keys(obj){     if(typeof obj!object) throw TypeError(The parameter obj must be an object!);     var result[];     for(var prop in obj){         if(obj.hasOwnProperty(prop)){             result.push(prop);         }     }     return result; } 求多个集合并集的函数 下面这个工具函数在许多JS库中都有它的影子来自于 Pomelo示例工程中的文件 chatofpomelo-websocket\game-server\node_modules\pomelo\node_modules\cliff\node_modules\winston\lib\winston\config.js可以实现多个集合并集求解。 但对于相同属性使用后面加入的集合中同名属性覆盖前面集合中属性。 function mixin (targetObj) {     //下面代码把函数的参数转换成一个数组并取得从第1个元素开始直到最后的参数组成的子数组     var args Array.prototype.slice.call(arguments, 1);     args.forEach(function (a) {         var keys Object.keys(a);//ES5: 返回对象所有自有属性的名称         for (var i 0; i keys.length; i) {             targetObj[keys[i]] a[keys[i]];         }     });     return targetObj; };   以上属性操作工具函数还存在不同程度的缺点仅供学习者参考。 本文转自朱先忠老师51CTO博客原文链接http://blog.51cto.com/zhuxianzhong/1653360 如需转载请自行联系原作者
http://www.zqtcl.cn/news/360039/

相关文章:

  • pk10网站怎么做网站建设名词
  • 秦皇岛哪有网站优化公司wordpress看图插件
  • ps做网站宽度想做个网站要多少钱
  • 马克斯网站建设外贸电商平台哪个网站最好
  • 国外网站做任务套利网络推广员怎么做
  • 如何创建一个网站用来存放东西wordpress 可以干嘛
  • 做健身俱乐部网站的目的和意义商超网站
  • 网站点击排名phpcms安装
  • 鹧鸪哨网站1v1深度开发最吸引人的营销广告文案
  • 网站建设可以学吗如何修改wordpress的登录
  • 保定做网站的公司百度软件商店
  • 金华市金东区建设局网站wordpress好看的下载页面
  • 英文网站seo发展前景成都网站开发建设推广
  • p2p网贷网站建设方案制作网站专业公司吗
  • 益阳网站建设企业房地产市场最新动态
  • 关于公司网站改版通知jmr119色带
  • 城关区建设局网站珠海中英文网站建设
  • 长春哪家做网站便宜手机英语网站
  • 应城网站建设莱芜拉呱
  • 如何建立淘宝客网站HTML网站建设课程
  • 网站建设供需chrome不安全的网站设置
  • 网站dns修改中国楼市未来发展趋势
  • 网站超级链接怎么做帮别人发广告赚钱平台
  • 做网站可以赚钱么注册做网站的公司
  • 河南省建协网官方网站建网站卖阀门
  • 医院网站怎么制作重庆安全监督工程信息网
  • 饰品网站建设规划书搭建微信网站
  • 开发网站访问流量赚钱加盟网站需要怎么做
  • 装饰协会网站源码湖南省郴州市北湖区
  • 花都网站建设价格重庆市住房和城乡建设厅网站