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; 1234'
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; }
12345678910111213141516171819'
3. JQ extend方法
jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。
$.extend( target [, object1 ] [, objectN ] )
指示是否深度合并
$.extend( [deep ], target, object1 [, objectN ] )
4. 简便方法
var obj1 = JSON.parse(JSON.stringify(obj2)); 1