今天因为项目需要写了个Json格式的深拷贝(深度复制)。很简单,没有做其他的判断,代码如下:

function deepCopy(json){if(typeof json == 'number' || typeof json == 'string' || typeof json == 'boolean'){return json;}else if(typeof json == 'object'){if(json instanceof Array){var newArr = [], i, len = json.length;for(i = 0; i < len; i++){newArr[i] = arguments.callee(json[i]);}return newArr;}else{var newObj = {};for(var name in json){newObj[name] = arguments.callee(json[name]);}return newObj;}}
}

刚才还犯了个错误,在使用concat连接数组的时候,还以为concat返回了一个新的数组,其实没有。concat方法不能用来做深拷贝。

转载于:https://www.cnblogs.com/realwall/archive/2011/11/23/2260858.html

JavaScript深拷贝Json相关推荐

  1. typescript或javascript深拷贝Object json

    typescript或javascript深拷贝Object json Object的json对象很多时候我们需要深拷贝,我写了两个工具函数,供大家参考. deepCopyObject 深拷贝一个Ob ...

  2. js 对象深拷贝_这一次,彻底理解JavaScript深拷贝

    导语 这一次,通过本文彻底理解JavaScript深拷贝! 阅读本文前可以先思考三个问题: JS世界里,数据是如何存储的? 深拷贝和浅拷贝的区别是什么? 如何写出一个真正合格的深拷贝? 本文会一步步解 ...

  3. javascript深拷贝和浅拷贝

    在JavaScript中,存在着这样的两种拷贝方式.分别是:深拷贝和浅拷贝,这两种拷贝在实际中非常的常见,如果读者是一个阅读源码的爱好者,相信多多少少对深拷贝和浅拷贝有所了解. 一.浅拷贝 浅拷贝在现 ...

  4. 4种JavaScript深拷贝的方法

    浅拷贝与深拷贝 浅拷贝是创建一个新对象,这个对象有着原始对象属性值的拷贝.如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的是内存地址 . 如果不进行深拷贝,其中一个对象改变了对象 ...

  5. html5展示json数据库,显示数据在html5从数据库使用javascript和json

    我想从MySQL数据库显示在html中的列表.要从MySQL获取数据我使用json和javascript.但它什么也没有显示!显示数据在html5从数据库使用javascript和json 我的HTM ...

  6. JavaScript对Json的增删改属性

    <script type="text/javascript">var json = {"age":24,"name":" ...

  7. JavaScript解析Json字符串

    JavaScript可以解析服务器接口返回的json字符串(一般用于Ajax),而不需要json的额外支持. 在JavaScript中可以通过eval()方法将一个json字符串解析成一个JavaSc ...

  8. php用json交换二维数组,PHP和Javascript的JSON交互(处理一个二维数组)

    我不得不承认:我是一个彻彻底底的JS白痴.但根据项目需要,不得不使用JSON,不管怎么说,经过一个晚上的学习,已经略有所成,记录下来. PHP的JSON类库我使用的是Services_JSON,没什么 ...

  9. JSON数据格式----- JavaScript与JSON、JavaScript的JSON对象、构建JSON格式数据

    JavaScript与JSON JSON是一种语法,用来序列化对象.数组等的.它只是基于JavaScript语法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zWMc ...

最新文章

  1. 如何写出一个confirm组件
  2. vb asp.net的一些属性值
  3. 项目开发中关于jquery中出现问题小结(textarea,disabled,关键字等)
  4. 找工作java还是python有用_你觉得学 Python 还是 Java 更好找工作?
  5. 太极计算机长沙,他设计了湖南最有尊严的建筑,诗意得让你想在里面加班
  6. mysql error1045 yes,MySQLERROR1045(28000)错误的解决办法
  7. ad17 pcb扇孔_PCB设计中为什么需要先进行扇孔
  8. 详解Transformer
  9. 口罩预约管理系统——数据库设计(前端+PHP+MySQL)
  10. django中render()与render_to_response()区别
  11. matebook14支持触摸屏吗_新款华为MateBook 14 2020款评测——触控屏来!
  12. 飞鹤、贝因美、君乐宝们的难题:新生儿人口减少、育儿知识的变化
  13. (一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
  14. Dx unsupported class file version 52.0
  15. 谢耳朵获艾美奖最佳男主角 三夺视帝感谢男友
  16. ELK日志分析Elasticsearch模块——语法基础CRUD
  17. Retrofit2.0介绍使用封装
  18. 人事系统中如何根据打卡数据自动产生考勤记录
  19. MacOS 打开软件出现xxx将对您的电脑造成伤害, 您应该将它移到废纸篓. 的解决方式.md
  20. 虚拟存储技术-virtual memory technologies

热门文章

  1. 恭喜你发现了宝藏,编程习惯-日积月累
  2. perl: warning: Setting locale failed. Falling back to a fallback locale (“en_HK.UTF-8“).
  3. 2022-2028年中国阻燃纤维行业市场研究及前瞻分析报告
  4. 正则的实例用法,删除包含某些字符的字符串
  5. pip 将 某包指定到某目录 批量安装
  6. 面向汽车应用的硬件推理芯片
  7. AI芯片体系结构目标图形处理
  8. CVPR2019:无人驾驶3D目标检测论文点评
  9. [JavaScript]走进 JAVASCRIPT 黑洞
  10. [JAVA EE] Thymeleaf 常用工具类