对象或数组的深度克隆

let obj={
  arr:[1,{
    aaa:'aaa'
  },3]
}
let deepCopyObject=function(obj){
  switch(['[object Object]', '[object Array]'].indexOf(Object.prototype.toString.call(obj))){
    case 0:
    obj={...obj}
    break
    case 1:
    obj=[...obj]
    break
    default:return obj
  }
  for(let item in obj){
      obj[item]=deepCopyObject(obj[item])
  }
  return obj
}
let object=deepCopyObject(obj)
object.arr[1].aaa='bbb'
console.log(obj)
console.log(object)

猜你喜欢

转载自blog.csdn.net/yimawujiang/article/details/87883196