首页 > 编程 > JavaScript > 正文

JavaScript基于遍历操作实现对象深拷贝功能示例

2019-11-19 12:02:17
字体:
来源:转载
供稿:网友

本文实例讲述了JavaScript基于遍历操作实现对象深拷贝功能。分享给大家供大家参考,具体如下:

function getType(o){  var _t;  return ((_t = typeof(o)) == "object" ? o==null && "null" || Object.prototype.toString.call(o).slice(8,-1):_t).toLowerCase();}function extend(destination,source){  for(var p in source){    if(getType(source[p])=="array"||getType(source[p])=="object"){      destination[p]=getType(source[p])=="array"?[]:{};      arguments.callee(destination[p],source[p]);    }else{      destination[p]=source[p];    }  }}var test={  a:"ss",  b:"dd",  c:[    {d:"css",e:"cdd"},    {      m:"ff",      n:[        {kk:"11",jj:"22"},        {ll:"44"}      ]    }  ]};var test1={};extend(test1,test);console.log(test);console.log(test1);test1.c[1].n[0].kk="change"; //改变test1的c属性对象的d属性console.log(test);console.log(test1);console.log(test.c[1].n[0]);console.log(test1.c[1].n[0]);

测试结果

从测试结果可以看到,通过使用这个遍历的方法,成功将对象test深拷贝复制一份,得到test1。并且更改test1对象的属性,并不会对test对象产生影响。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.VeVB.COm/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表