写出一个函数,实现对,对象的深拷贝
要求实现一个函数clone。
let obj={
name:'小明',
age:24
}
let obj1=clone(obj);
修改obj1,不会影响到obj的值。 这道题,在obj上面,只写一层,对象里面没有嵌套数组或对象,但是要考虑到这种情况。
就是逐个遍历,如果检测到属性值是时引用类型就用当前属性进行遍历。
function clone(obj){
if(!obj&& typeof obj!== 'object'){
return;
}
var newObj=obj.constructor===Object?{}:[];
for(var key in obj){
newObj[key] =(obj[key]&&typeof obj[key]==='object')?clone(obj[key]):obj[key];
}
return newObj;
}