// 使用递归来实现一个深度克隆,可以复制一个目标对象,返回一个完整拷贝
var deepClone = function fnDeepClone(obj){
var result = typeof obj.splice === 'function'?[]:{},//如果这句注释掉,会抛出异常,这句发挥的是什么作用?
key;
if (obj && typeof obj === 'object'){//这句怎么理解?如果obj是对象,typeof obj一定是对象啊。
for (key in obj ){
if (obj[key] && typeof obj[key] === 'object'){
result[key] = fnDeepClone(obj[key]);
}else{
result[key] = obj[key];//这句怎么理解?复制的不是值,而是键值对?
}
}
return result;
}
return obj;
}
var arr=[2,3,[6,7]];
var brr=deepClone(arr);
console.log(brr);
LEATH
相关分类