实现一
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
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。