1. let person = {
    2. name:'小明',
    3. hobby:['学习',['购物','跑步']]
    4. }
    5. 方法一 //转换成字符串
    6. let person1 = JSON.parse(JSON.stringify(person))
    7. 方法二 递归
    8. function deepClone(obj){
    9. let cloneObj = {}
    10. if(obj === null ) return obj
    11. if(obj instanceof Date) return new Date(obj)
    12. if(obj instanceof RegExp) return new RegExp(obj)
    13. if(typeof obj !== 'object') return obj
    14. for (let i in obj ){
    15. if(obj.hasOwnProperty(i)){
    16. cloneObj[i] = deepClone(obj[i])
    17. }
    18. }
    19. return cloneObj
    20. }
    21. let person1 = deepClone(person)
    22. 补充知识点:
    23. hasOwnProperty() 方法会返回一个布尔值,指示对象自身
    24. 属性中是否具有指定的属性(也就是,是否有指定的键)
    25. 递归 : 函数运行时调用自己
    26. 回调函数:将函数作为参数,传递给另一个函数