深浅克隆
一、react项目中遇到的问题:
1.描述: 如下图 点击提交,数据有更新但【集装箱号未更新,提交之后还显示在页面】,刷新页面才提交成功
2.问题: 修改集装箱号这里的数据没有深克隆
3.解决: 在修改的时候用深克隆JSON.stringify()
condom[0].innerHTML="<input value="+ JSON.stringify(condom[0].innerText) +" />"
二、我们来谈一下深浅克隆:
1.概念:什么是深克隆,什么是浅克隆呢?【克隆只针对对象、数组、函数等复杂数据】
【浅克隆】修改新变量的值会影响原有的变量的值 就是将栈内存中的引用复制一份,赋给一个新的变量,本质上两个指向堆内存中的同一地址,内容也相同,其中一个变化另一个内容也会变化(根本上改变的是同一个对象)
【深克隆】修改新变量的值不会影响原有变量的值 就是创建一个新的空对象,开辟一块内存,然后将原对象中的数据全部复制过去,完全切断两个对象间的联系。