javascript - 使用 Javascript 将一个变量设置为等于另一个变量是否会导致内存中出现重复数据?

标签 javascript

使用 Javascript,如果我有:

var a = {'x':1, 'y':2};
var b = a;

console.log(a);
console.log(b);

...那么 a 和 b 都会打印相同的内容。我的理解是a和b都指向内存中的相同数据。但是,如果我这样做:

a = {};
console.log(b);

...那么 b 仍然具有原始对象,即使 a 现在是一个空对象。我想确保如果我设置像上面这样的变量,内存中不会有对象的重复副本var b = a。在某些语言中,为 a 赋予新值会对 b 产生链式 react ,因为它们都指向内存中的相同数据。

令我困惑的是,设置 a = {} 并没有将 b 设置为空对象。在我设置 a = {} 之前,它们实际上是否指向相同的数据?

最佳答案

下面三张图片将告诉您这里发生的事情 enter image description here

enter image description here

enter image description here

关于javascript - 使用 Javascript 将一个变量设置为等于另一个变量是否会导致内存中出现重复数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974419/

相关文章:

javascript - 使用 Three.js 加载 Maya 模型

javascript - 将两个数组的值交替转换为新的第三个数组

javascript - 获取鼠标相对于缩小的 div 的位置

javascript - 多个更改事件

javascript - 更改文本框 Javascript 的单个值

javascript - 如何在两个列表框之间移动元素?

javascript - 2012-2020年的矩数据是什么意思?

javascript - 当对象到达边缘时将对象移动到 Canvas 的另一侧

javascript - 如果第二个对象中不存在,则填充对象中的选择框

javascript - 使用 jQuery 从 JSON 中获取对象