关键词 :递归

主要分为 数组 、对象、以及基本类型

function clone(Obj) {   
        var buf;   
        if (Obj instanceof Array) {   //如果是数组类型 则构建一个数组 clone数组的每个元素
            buf = [];  
            var i = Obj.length;   
            while (i--) {   
                buf[i] = clone(Obj[i]);   
            }   
            return buf; 
        }else if (Obj instanceof Object){   //如果是对象类型 则创建对象 clone 对象中的属性
            buf = {};  //创建一个空对象 
            for (var k in Obj) {  //为这个对象添加新的属性 
                buf[k] = clone(Obj[k]);   
            }   
            return buf;   
        }else{   
            return Obj;   //如果是值类型 则直接返回
        }   
    }

转载于:https://www.cnblogs.com/dubaokun/p/3541897.html

javascript 深度克隆相关推荐

  1. javascript 深度克隆对象

    js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递: 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内 ...

  2. Javascript 深度克隆中的循环引用问题解决和代码优化

    概要 在前端项目开发中,我们经常需要深度克隆JS对象.在克隆代码开发过程中,我们经常会遇到数组判定或对象循环引用的问题. 本文通过实例来解决上述问题 代码及实现 常见深度克隆JS对象的代码 funct ...

  3. 覆盖所有类型的javascript深度克隆

    第一种方法(只适用于基础类型) const newObj = JSON.parse(JSON.stringify(oldObj)); 第二种方法 const getType = (obj)=> ...

  4. JavaScript复习笔记(3)——数据类型(null、undefined、NaN)与深度克隆

    JavaScript中的数据类型:Number.Boolean.String.Object.Function 但是此外还有一些容易混淆的类型如null.undefined.NaN.Array的概念 f ...

  5. JavaScript对象克隆

    前言 之前有人问我如何克隆一个JS对象,我当时没答上来:过后我查资料弄懂了这个问题,现在整理成文. 正文 JavaScript的一切实例都是对象,但他们也分为原始类型和引用类型.原始类型对象指的是字符 ...

  6. DOM节点深度克隆函数cloneNode()用法实例

    本文实例讲述了DOM节点深度克隆函数cloneNode()用法.分享给大家供大家参考. <div id= "container" > <ul> <li ...

  7. JavaScript深度学习

    毛囊炎鼻炎 JavaScript深度学习 蔡善清,[美] 斯坦利·比列斯奇,[美] 埃里克·D.,尼尔森,[美] 弗朗索瓦·肖莱 著,程泽 译 ISBN:9787115561145 包装:平装 开本: ...

  8. Jquery的深度拷贝和深度克隆

    有人问,拷贝和克隆不都是"复制"的意思吗. 这位看官问的好,一般情况下是一样的,但在jquery中却有些不同.jqurey深度拷贝一般只js对象的复制,是$.extend()方法, ...

  9. jquery,angular 对象数组的克隆和深度克隆

    var obj1 = $.extend(false, {}, obj2);  //对象克隆 var obj1 = $.extend(true, {}, obj2);   //对象深度克隆 ------ ...

最新文章

  1. linux AS 5 DNS 配置中的小错误
  2. 如何将自己写的verilog模块封装成IP核(二)
  3. php如何隐藏入口文件,PHP怎样隐藏入口文件
  4. Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
  5. Android Studio常用插件
  6. 洛谷P2566 [SCOI2009]围豆豆(状压dp+计算几何)
  7. mysql数据库备份(完全备份,增量备份)
  8. [python opencv 计算机视觉零基础到实战] 十二 直方图
  9. 了解JVM运行时的内存分配
  10. mysql5.7配置用户名密码_MySQL57安装图解
  11. MFC可执行文件问题
  12. 学生上课睡觉班主任怎么处理_学生上课睡觉鼾声如雷,老师要拍照发家长群吗?一线教师为你分析...
  13. Tableau可视化学习笔记:day09-10
  14. 7 HandlerSet 处理程序链表类——Live555源码阅读(一)基本组件类
  15. Excel表格输入身份证数字就变了 Excel函数公式大全 Excel表格制作
  16. java聚合支付之建行
  17. 网络信息安全期末复习要点
  18. python多条件求和_python – Numpy:条件求和
  19. .tex类型文件怎么阅读_有了这些神器,什么文件格式转换都能搞得定!
  20. 8cm等于多少像素_1cm等于多少像素??

热门文章

  1. 阿里公开核心技术:如何摘下4项世界冠军,推理性能比第二名快5倍
  2. 大咖来信 | 微软中国CTO韦青:低代码/无代码时代来了,写代码的你准备好了吗?...
  3. 国内首个手机AR实景驾驶导航上线,还能识别车辆行人,搜狗地图出品
  4. 8亿参数,刷新ImageNet纪录:何恺明团队开源最强ResNeXt预训练模型
  5. 发现自己的idea已经被人发表了,该怎么办?研究生灵魂发问,引起热烈讨论
  6. 项目中常用的 19 条 MySQL 优化总结
  7. 微信小程序之可滚动视图容器组件 scroll-view
  8. icps -lm 命令与 shmmax 的关系
  9. 企业部署Linux应用将拥有更低的整体拥有成本
  10. linux压缩和解压命令总结