JSON.parse(),JSON.stringify()实现对象的深拷贝

根据不包含引用对象的普通数组深拷贝得到启发,不拷贝引用对象,拷贝一个字符串会新辟一个新的存储地址,这样就切断了引用对象的指针联系。
测试例子:

var test={
    a:"ss",
    b:"dd",
    c:[
        {dd:"css",ee:"cdd"},
        {mm:"ff",nn:"ee"}
    ]
};
var test1 = JSON.parse(JSON.stringify(test));
console.log(test);
console.log(test1);
test1.c[0].dd="change"; 
console.log(test1);//改变test1的c属性对象的d属性
console.log(test);  //不影响test.c[0].dd的值

转自: 使用JSON.parse(),JSON.stringify()实现对对象的深拷贝

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 本文要解决的问题: 为什么会有深拷贝(deep clone)和浅拷贝(shallow clone)的存在 理...
    无亦情阅读 5,828评论 0 5
  • 我们使用=操作符复制对象时,由于对象是通过引用传递的,父子对象引用的是内存上同一个堆的地址,修改任意父子对象,父子...
    明天的天明阅读 2,350评论 0 0
  • 值类型与引用类型 谈浅拷贝与深拷贝之前,我们需要先理清一个概念,即值类型与引用类型。 什么是值类型与引用类型?这要...
    franose阅读 3,741评论 1 8
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,165评论 0 5
  • 从没说要,从不明了,总想忘掉。
    adagio77阅读 1,234评论 0 0

友情链接更多精彩内容