手写深拷贝-基本实现

  <script src="./js/isObject.js"></script>
  <script>
    // // 封装判断是否是对象类型
    // function isObject(value){
    //   const valueType = typeof value
    //   return (value !== null) && (valueType ==="object" || valueType ==="function")
    // }
    // 封装深拷贝
    function deepCopy(obj){
      //1. 如果是原始类型之间返回
      if(!isObject(obj)){
        return obj
      }
      //2.如果是对象类型,创建对象
      const newObj={}
        for (const key in obj){
          newObj[key] = deepCopy(obj[key]);
      }
      return newObj
    }
    const info = {
      name:"hdc",
      age:18,
      friends:{
        name:"kobe",
        address:{
          name:"洛杉矶",
          detail:"斯坦普斯中心"
        }
      }
    }
    const newObjd = deepCopy(info)
    console.log(newObjd)
  </script>
posted @ 2024-10-23 12:24  韩德才  阅读(8)  评论(0)    收藏  举报