//测试用例
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);