Javascript 对象(object)合并操作实例分析
本文实例讲述了Javascript对象(object)合并操作。分享给大家供大家参考,具体如下:
对象的合并
需求:设有对象o1,o2,需要得到对象o3
varo1={a:'a'},o2={b:'b'}; //则 varo3={a:'a',b:'b'}
方法1:使用JQuery的extend方法
- **方法定义**:jQuery.extend([deep],target,object1,[objectN])
- >用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
- >如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象(递归合并)。否则的话,副本会与原对象共享结构。未定义的属性将不会被复制,然而从对象的原型继承的属性将会被复制。
o3=$.extend(o1,o2)//合并o1和o2,将结果返回给o3.注意:此时,o1==o3!即o1被修改 //或 o3=$.extend({},o1,o2)//合并o1和o2,将结果返回给o3.注意:此时,o1!=o3!即o1没有被修改
方法2:用Object.assign();网上找的例子:
varo1={a:1}; varo2={b:2}; varo3={c:3}; varobj=Object.assign(o1,o2,o3); console.log(obj);//{a:1,b:2,c:3} console.log(o1);//{a:1,b:2,c:3},注意目标对象自身也会改变。
方法3:遍历赋值法
- 循环对象n中的每一个对应属性。
- 确认对象n中存在该属性
- 确认对象o中不存在该属性
varextend=function(o,n){ for(varpinn){ if(n.hasOwnProperty(p)&&(!o.hasOwnProperty(p))) o[p]=n[p]; } };
类似于直接赋值增加属性:
o3=o1; o3['b']='b'; //o3={o1:'a',o2:'b'};
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。