首页 > 其他分享 >手写深拷贝-基本实现

手写深拷贝-基本实现

时间:2024-10-23 12:20:36浏览次数:1  
标签:基本 function obj valueType newObj key const 手写 拷贝

  <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>

标签:基本,function,obj,valueType,newObj,key,const,手写,拷贝
From: https://www.cnblogs.com/hdc-web/p/18496111

相关文章

  • Unity CharacterController基本属性
    CharacterController优点:已有的碰撞体最小移动距离限制:通常设置为0,如果角色试图移动到指示值以下,根本移动不了,目的是为了消除潜在的不需要的抖动皮肤宽度限制:避免卡在其他碰撞体中,在碰撞体进行碰撞检测拦截之前,皮肤宽度已经在这的基础上,提前做了一次碰撞拦截,但它会更柔和,允许......
  • 空间数据库基础理论 GIS空间数据处理分析涉及的基本概念
    空间数据库基础理论GIS空间数据处理分析涉及的基本概念周陆军​腾讯科技(深圳)有限公司前端开发​关注他 63人赞同了该文章《空间数据库》课程整理汇总,106篇课程,内容太长,学习中,把一些关键点,汇总记下笔记地理空间GIS中的地理空间(Geo-spatial)是指......
  • Maven的安装,环境变量配置及基本使用
    Maven简介Maven是一个项目管理和构建自动化工具,专注于Java应用的开发。它通过项目对象模型(POM)来管理项目的构建、报告和文档。Maven的主要特点包括依赖管理和项目信息管理。Maven的核心功能依赖管理:Maven能够管理项目中所有jar包的版本,确保团队成员和不同的开发环境......
  • K8S基本概念和组件
    特点便携性无论公有云、私有云、混合云还是多云架构都全面支持可扩展模块化、可插拔、可挂载、可组合,支持各种形式的扩展自修复自保持应用状态、自重启、自复制、自缩放,声明式语法组件etcd保存整个集群状态,充当数据库角色,只与APIServer通讯apiserv......
  • 变量与基本数据类型
    文章目录一、程序员必备修养--注释1-1.单行注释-->用#符号表示,在#后面的内容都是注释1-2.多行注释-->用一对三引号包裹着的内容(三引号=三对单/双引号)二、初识变量三、变量的基本使用3-1.声明变量:把右边的数据赋值给左边的变量名3-2.使用变量:直接输出变量名3-3.用i......
  • Matplotlib库的基本使用
    1.什么是MatplotlibMatplotlib是一款用于数据可视化的Python第三方库;它能够根据NumPy数组来绘制2D图像。2.绘图基础Matplotlib库太大,画图通常只需要其中的核心模块:matplotlib.pyplot即可,并给一个别名,即:importmatplotlib.pyplotasplt。2.1绘制图像importmatplotlib.......
  • 【C++指南】类和对象(四):类的默认成员函数——全面剖析 : 拷贝构造函数
     引言拷贝构造函数是C++中一个重要的特性,它允许一个对象通过另一个已创建好的同类型对象来初始化。了解拷贝构造函数的概念、作用、特点、规则、默认行为以及如何自定义实现,对于编写健壮和高效的C++程序至关重要。 C++类和对象系列文章,可点击下方链接阅读:【C++指南......
  • 手写节流函数-基本实现
    <buttonclass="btn">按钮</button><!--<scriptsrc="./js/underscore.js"></script>--><script>functionhdcthrottle(fn,time){//获取开始时间letstartTime=0const_throttleFn=f......
  • 队列以及循环队列及其基本操作
    和栈相反,队列是一种先进先出的数据结构,他在表尾插入元素,表头删除元素。队列也分为链队列以及顺序队列两种,链队列动态分配空间,不用担心空间不足,顺序队列简单易懂,操作方便,但是空间利用率低,所以我们一般使用链式队列结构。链式队列对顺序队列进行初始化,顺序队列分配空间类似于......
  • 手写丐版immerjs
    手写丐版immerjs:constcreateProxy=(target)=>{constdata={__initial:target,__copy:null,__isModified:false}consthandler={get(state,attr){if(!state.__isModified)returnstate.__initial[attr]if(sta......