let person = {
name:'小明',
hobby:['学习',['购物','跑步']]
}
方法一 //转换成字符串
let person1 = JSON.parse(JSON.stringify(person))
方法二 递归
function deepClone(obj){
let cloneObj = {}
if(obj === null ) return obj
if(obj instanceof Date) return new Date(obj)
if(obj instanceof RegExp) return new RegExp(obj)
if(typeof obj !== 'object') return obj
for (let i in obj ){
if(obj.hasOwnProperty(i)){
cloneObj[i] = deepClone(obj[i])
}
}
return cloneObj
}
let person1 = deepClone(person)
补充知识点:
hasOwnProperty() 方法会返回一个布尔值,指示对象自身
属性中是否具有指定的属性(也就是,是否有指定的键)
递归 : 函数运行时调用自己
回调函数:将函数作为参数,传递给另一个函数