我知道这个是浅拷贝,目前困惑点是红线的for循环后obj变为单层对象,给obj赋值为何还能改变data中name的根值
2条回答 默认 最新
- 程序员宝妈 2021-07-26 22:56关注
你在for循环里面给obj重新赋值成单个对象,实质上只是把obj的指向给更新了,并没有进行深拷贝,这时指向的是name对象下userName这个对象的地址,所以当你再调用obj的时候,用的还是之前引用的对象。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
你在for循环里面给obj重新赋值成单个对象,实质上只是把obj的指向给更新了,并没有进行深拷贝,这时指向的是name对象下userName这个对象的地址,所以当你再调用obj的时候,用的还是之前引用的对象。