首页 > 开发 > JS > 正文

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

2024-05-06 16:48:45
字体:
来源:转载
供稿:网友

本文实例讲述了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]);

测试结果

JavaScript,遍历,对象,深拷贝功

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

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


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表