实现一
function deepClone(obj){
var newObj=obj instanceof Array ? [] : {};
for(let key in obj){
newObj[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key]
}
return newObj
}
实现二
思考到内置包装对象Date、RegExp
function deepClone(obj){
if(obj === null){
return obj
}
if(typeof obj !== 'object'){
return obj
}
if(obj instanceof Date){
return new Date(obj)
}
if(obj instanceof RegExp){
return new RegExp(obj)
}
// 非null状况下的typeof obj === 'object'解决形式
var newObj=new obj.constructor;
for(let key in obj){
newObj[key]=deepClone(obj[key]);
}
return newObj
}
发表回复