function cloneObj(source, target) {
  if (!target) {
    if (source.constructor === RegExp) {
      target = new RegExp(source.source, source.flags);
    } else {
      target = new source.constructor();
    }
  }
  var names = Object.getOwnPropertyNames(source);
  for (var i = 0; i < names.length; i++) {
    var desc = Object.getOwnPropertyDescriptor(source, names[i]);
    if (typeof desc.value === "object" && desc.value !== null) {
      var values = cloneObj(desc.value);
      Object.defineProperty(target, names[i], {
        enumerable: desc.enumerable,
        configurable: desc.configurable,
        writable: desc.writable,
        value: values
      });
    } else {
      Object.defineProperty(target, names[i], desc);
    }
  }
  return target;
}

注:这个方法不能复制DOM和二进制流。

转载于:https://www.cnblogs.com/wuqilang/p/11204677.html

牛逼哄哄的对象深复制相关推荐

  1. js 对象深复制(深拷贝)

    对象深复制 复制逻辑 什么是深复制和浅复制?JavaScript有6种基本数据类型(Number,Boolean,String.null.udefined和Symbol)和1种引用类型(Object) ...

  2. JavaScript中对象深复制

    参考: http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/ 本文转自 ...

  3. JavaScript 复制对象与Object.assign方法无法实现深复制

    在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...

  4. java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?

    大家好啊,今天给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过. 废话不多说,下面我要开始吹了-- 1.Swing 下面这个是用 swing 开 ...

  5. 牛逼哄哄的SLAM技术 即将颠覆哪些领域?

    牛逼哄哄的SLAM技术 即将颠覆哪些领域? 0评论 2016-05-12 21:15:02 来源:雷锋网 作者:宗仁 一般人我不告诉他,绝佳买入机会! 什么是SLAM?机器人在未知环境中,要实现智能化 ...

  6. 牛逼哄哄的SLAM技术即将颠覆哪些领域

    原标题:牛逼哄哄的SLAM技术即将颠覆哪些领域? 什么是SLAM?机器人在未知环境中,要实现智能化需要完成三个任务,第一个是定位(Localization),第二个是建图(Mapping),第三个则是 ...

  7. ios安卓模拟器_IOS全球首款手游模拟器,牛逼哄哄但没有卵用!

    分享IOS和MAC少有人知的软件 100000+果粉都在看    关注 1 黑雷模拟器是什么? 最近看到很多平台都在发布这款苹果模拟器,看了很多文章不得不说都是一些假果粉,很多应该就是为了蹭热点,对这 ...

  8. 牛逼哄洪的 Java 8 Stream,性能也牛逼么?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 Java8的Stream API可以极大提高Java程序员的生产力 ...

  9. 牛逼哄哄的全链路监控系统!搭建起来也没有想象中的那么难啊...

    点击关注公众号,回复"1024"获取2TB学习资源! 问题背景 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软件模块集上 ...

  10. 牛逼!这届WWDC依旧展现了那个让你无法复制的苹果!

    出品 | 网易手机 作者 | 吴波 段嘉祺 原标题:最强的电脑!无以伦比的生态!这届WWDC依旧是你无法复制的苹果! 今日凌晨1点,2019年苹果全球开发者大会(WWDC19)如期而至. 苹果结合现有 ...

最新文章

  1. vue 启动时卡死_使用 Vue 两年后
  2. latin1_swedish_ci gbk_chinese_ci
  3. WinAPI: SetTextAlign - 设置绘图环境的文本对齐方式
  4. mysql 并发避免锁表_MYSQL锁表的用法,防止并发情况下的重复数据
  5. spark如何防止内存溢出_spark开发十大原则
  6. Thinkphp内核无限坐席在线客服系统源码
  7. [分享] Flask 网络开发经典书籍: Flask Web Development
  8. Qt4_读取和写入文本
  9. CCF201412-5 货物调度【费用流】(100分解题链接)
  10. dijkstra--非负权值的单源最短路径STL实现(邻接表+优先队列) (带路径)
  11. 《机器学习实战》读书笔记——Logistic回归
  12. Mybatis之插入ListT
  13. 2019年上半年计算机水平,2019年上半年全国计算机等级考试通过秘诀分享
  14. 免费IP切换工具有用吗?
  15. 波粒二象性及波尔电子轨道理论
  16. 小说大纲模板在计算机的哪里,如何撰写小说大纲
  17. 获取驱动失败Java连接数据库,好哀伤,java连接sql数据库加载驱动就是失败了
  18. 计算机输入d为啥返回桌面,按D键空格键就退出输入回到桌面
  19. php 计算字数,实现word一样的字数计算
  20. 姬魔恋战纪服务器维护,姬魔恋战纪闪退、进不去、黑屏不能玩的原因和解决办法[图]...

热门文章

  1. 一篇通读网贷产品的身份核验设计
  2. iOS9.0 新功能
  3. beyond compare 4 This license key has been revoked 解决办法
  4. “贵阳发生了什么”大数据主题报告会在京举行
  5. 深度学习之图片压缩技术
  6. 一文详解空洞卷积(Atrous Convolution)
  7. 每一个赞扬背后都有一两个“慕名而来”,而每一个抱怨背后都有100个“弃你而去”。
  8. RxSwift学习笔记
  9. 推荐一款团队协作软件---confluence
  10. oracle归档切换,oracle 切换归档方式