关于JS数组和对象的深拷贝

数组的浅拷贝:

var arr = [1,2,3];

var newArr = arr;

newArr[0] = 4;

console.log(arr + ‘##’ + newArr); //输出[4,2,3]和[4,2,3]

解释:这种方式实际上只是新数组对原数组的一个引用,更改数组元素会对原数组产生影响,称为浅拷贝(也就是C语言中的按址传递,arr和newArr都是保存的同一个数组地址)

数组的深拷贝:

最简单的方式

JSON.stringify()之后再JSON.parse();

示例:

var arr = [1,2,3];

var newArr = JSON.parse(JSON.stringify(arr));

newArr[0] = 4;

console.log(arr + ‘##’ + newArr); //输出[1,2,3]和[4,2,3]

解释:无须解释!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,907评论 1 45
  • 转载:在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总...
    七色烟火阅读 3,301评论 0 3
  • 1.引用类型有哪些?非引用类型有哪些 引用类型: 对象 object 数组 函数 正则非引用类型...
    怎么昵称阅读 263评论 0 0
  • 昨晚,闭着眼,脑海放空,呼吸均匀,就像在冥想,大概半个钟后,我翻了个身,在脑海里问自己——我在干嘛?缓了一会儿,才...
    阿银老师阅读 182评论 0 0
  • 很多时候在某个场景,我都会很有想要表达的欲望,可是当真正要说出来时,却发现语句不通畅,零零散散,衔...
    新葵阅读 149评论 4 3