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() 方法会返回一个布尔值,指示对象自身 属性中是否具有指定的属性(也就是,是否有指定的键) 递归 : 函数运行时调用自己 回调函数:将函数作为参数,传递给另一个函数