- es6:
Object.assign方式针对层级不多的对象可用,深层了就深拷贝不了了,用法简单。
let a={a:{b:1},a1:{b:2}},
b={b1:{b2:{b3:{c:1}}},b2:{c2:2},a:4};
let result = Object.assign({},a,b);
result;
2. 函数递归
//深复制,需要用递归
function deepCopy(o, c){
var c = c || {};
for(var i in o){
if(typeof o[i] === 'object'){
if(o[i].constructor === Array){
//这是数组
c[i] = [];
}else{
//这是对象
c[i] = {};
}
deepCopy(o[i], c[i]);
}else{
c[i] = o[i];
}
}
return c;
}
3. JQ extend方法
jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。
$.extend( target [, object1 ] [, objectN ] )
指示是否深度合并
$.extend( [deep ], target, object1 [, objectN ] )
4. 简便方法
var obj1 = JSON.parse(JSON.stringify(obj2));