js原生封装深拷贝 运用递归
function deepClone(newObj, obj) {
for (var key in obj) {
if (obj[key] instanceof Array) {
newObj[key] = [];
deepClone(newObj[key], obj[key]);
} else if (obj[key] instanceof Object) {
newObj[key] = {};
deepClone(newObj[key], obj[key]);
} else {
newObj[key] = obj[key];
}
}
return newObj;
}
var obj = {
name: '奥利给',
age: 18,
hobbies: ['吃饭', '睡觉', '打豆豆', '写代码'],
skiis: {
sing: '鸡你太美',
dance: 'giao',
eat: {
fruits: ['apple', 'banana', 'orange'],
},
},
};
var newObj = {};
var res = deepClone(newObj, obj);
console.log(res);