- //测试用例
- var obj = {
- name: "ceshi",
- age: 12,
- list: [{
- name: "ceshi2",
- age: 13
- }, {
- name: "ceshi3",
- age: 14
- }]
- };
方法一:利用JSON
- var str=JSON.stringify(obj);
- //验证
- obj.list[0].name="new123";
- var newObj=JSON.parse(str);
方法二:递归
- function clone(obj){
- var newObj;
- //数组类型的拷贝
- if (obj instanceof Array) {
- newObj=[];
- var i=obj.length;
- while(i--){
- newObj[i]=clone(obj[i]);
- }
- return newObj;
- }
- //对象类型的拷贝
- else if(obj instanceof Object){
- newObj={};
- for (var k in obj) {
- newObj[k]=clone(obj[k]);
- }
- return newObj;
- }
- else {
- return obj;
- }
- }
- var newObj=clone(obj);
- obj.list[0].name="OK";
- alert(obj);