第一种
function clone (Obj) {
var buf;
if (Obj instanceof Array) {
buf = []; //创建一个空的数组
var i = Obj.length;
while (i--) {
buf[i] = clone(Obj[i]);
}
return buf;
} else if (Obj instanceof Object) {
buf = {}; //创建一个空对象
for (var k in Obj) { //为这个对象添加新的属性
buf[k] = clone(Obj[k]);
}
return buf;
} else {
return Obj;
}
}
第二种:
deepClone(obj1, obj2) {
for(let key in obj1) {
if(typeof obj1[key] === 'object') {
if(Array.isArray(obj1[key])) {
obj2[key] = []
} else {
obj2[key] = {}
}
deepClone(obj1[key], obj2[key])
} else {
obj2[key] = obj1[key]
}
}
}