Android CGLib动态代理 控制跳转 全局重载运算符 svn 品优购电商系统开发 jquery第一个子元素 jq去除空格 jquery使用ajax java数据分析 android常用布局 android自定义控件 matlab取绝对值 kali重启网卡 java微服务架构 python手册 javaforeach java列表 linux的安装 java游戏开发教程 乱码查看器 计算机操作系统第四版 神龙kms tftpd64 网络工程师教程 mac地址修改 给视频加字幕的软件 mysql使用教程 画图怎么添加文字 还原软件哪个好 脚本编程 小米9截图 抠图软件免费版 磁芯大战 黑客攻防技术宝典 autocad2004迷你版 qq魔法卡片登陆 mac办公软件 极速pdf转word 淘宝店铺会员
当前位置: 首页 > 学习教程  > 编程学习

浅谈对深浅拷贝的理解,以及解决深浅拷贝的方法,最简单的话解释最清楚!

2021/1/9 2:04:55 文章标签: 深浅拷贝

什么是浅拷贝? 简单点,直接上代码: obj1{a:1} let obj2 obj1 //obj2{a:1} obj2.a null //b{a:null} console.log(obj1,obj2) 输出(obj1{a:null} , obj2{a:null})上面的示例是典型的浅拷贝,按道理说…

什么是浅拷贝?

简单点,直接上代码:

obj1={a:1}
let obj2 = obj1  //obj2={a:1}
obj2.a = null   //b={a:null}
console.log(obj1,obj2)
输出(obj1={a:null}  ,  obj2={a:null}

上面的示例是典型的浅拷贝,按道理说改变obj2的值后,obj1是不会跟着一起改变的;但结果就是obj2改变obj1也跟着变了,这就是浅拷贝。

什么是深拷贝?

简单点,继续上代码:

obj1={a:1}
let obj2 = JSON.stringify(obj1)  //转成字符串在赋值
obj3 = JSON.parse(obj2)  //将转换而来的字符串转换为原生js对象
obj3.a=null
console.log(obj1,obj3)
输出(obj1={a:1}  ,  obj3={a:null}

上面的示例是典型的深拷贝,同样是被赋予同样的值,这个改变obj3就不会改变obj1了;

小节:

看到这里也就不用再说解决办法了,深浅拷贝你都已经理解了,了解底层原理戳这里深浅拷贝,相互转换还不是分分钟的事了,希望可以帮助到你!


本文链接: http://www.dtmao.cc/news_show_1100291.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?