猿问

深拷贝和浅拷贝的源码区别解析

问题描述

这两个的区别是一个开创了新的内存空间,另一个只是引用关系,但我想知道源码里面的区别,为什么会导致深拷贝和浅拷贝功能的区别

相关代码

this.dataInfo = JSON.parse(JSON.stringify(data[0][0]));
this.dataInfo = data[0][0];

你期待的结果是什么?实际看到的错误信息又是什么?


呼唤远方
浏览 596回答 1
1回答

守着星空守着你

如果是浅拷贝,两个的值则会相互影响,而深拷贝则不会data[0][0]={a:1} this.dataInfo = JSON.parse(JSON.stringify(data[0][0])); data[0][0]={a:2} console.log(this.dataInfo) // {a:1} this.dataInfo={a:3} console.log(data[0][0]) // {a:2}data[0][0]={a:1} this.dataInfo = data[0][0]; data[0][0]={a:2} console.log(this.dataInfo) // {a:2} this.dataInfo={a:3} console.log(data[0][0]) // {a:3}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答