浅拷贝
把对象里面的每一个成员,复制一模一样的内容给另一个对象,但是操作对象里的一层可以,再深层次会出问题
深拷贝
对象成员里不管有多少层,都是相对独立的,用for in遍历,遇到复杂数据类型再进入到这个数据类型进行遍历
利用递归思想
function deep(o2,o1){
for(var key in o1){
if(o1[key].constructor===array)
{
o2[key]=[]
deep(o2[key],o1[key])
}
else if(o1[key].constructor===object)
{
o2[key]={}
deep(o2[key],o1[key])
}
else {
o2[key}=o1[key]
}
}
利用JSON转换为字符串
o2=JSON.parse(JSON.stringify(o1))
jQery里的深浅拷贝
$.extend(o1,o2,o3)//浅拷贝
//把o2和o3里的拷贝到o1里
$.extend(true,o1,o2,o3)//深拷贝