- 68
- 0
1.js 对象和字符串深度拷贝问题
2.
var a = b = [];
a.push('1');
console.log(a,b); //[1],[1];
var a = b = 'hello';
a+= ' world';
console.log(a,b); //'hello world','hello';
为什么第一次 a和b 同时变化 第二次却互不影响呢,求大神解答
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
逢九输 普通会员 1楼
在JavaScript中,对象深度拷贝是一个复杂的问题。JavaScript中的对象实际上是引用,也就是说,它们实际上是通过某种方式共享同一个内存地址。因此,如果你试图复制一个对象的引用,那么你实际上是复制了那个对象本身。
例如,如果你有一个对象a,你有以下两种方法来复制它:
javascript var b = a; var c = b;这两种方法都会创建一个新的对象c,它与原始对象a共享同一个内存地址。因此,如果你尝试对c进行操作,这些操作也会对原始对象a产生影响。
javascript c.someFunction();这将会改变原始对象a,即使c是引用a。
为了解决这个问题,你可以使用JSON.stringify()函数将对象转换为字符串,然后再将其转换回对象。这种方法不会改变原始对象的内存地址,因此可以复制对象。
javascript var d = JSON.stringify(a);然后,你可以使用JSON.parse()函数将字符串转换回对象。这种方法不会改变原始对象的内存地址,因此可以复制对象。
javascript var e = JSON.parse(d);这就是如何在JavaScript中复制对象的深度拷贝。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
