Javascript - [为什么?] 将变量分配给对象

标签 javascript variables object variable-assignment

为什么当我将变量分配给对象并更改该变量时,它也会更改对象?例如:

c = 26;
a = b = c;
a += 1;

a      // 27
b      // 26
c      // 26

但是

z = {};
x = y = z;
x.ab = 5; 

x      // Object {ab: 5}
y      // Object {ab: 5}
z      // Object {ab: 5}

为什么(在上面的例子中)y.abz.ab存在?我只修改了x不是yz 。如何在第一个示例(使用整数)中,当我更改 a 的值时, bc没有受到影响吗?

最佳答案

当您将一个对象分配给变量时,它只是引用原始对象,而不是复制。因此所有变量都引用同一个对象。

关于Javascript - [为什么?] 将变量分配给对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586423/

相关文章:

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

object - 多目标跟踪 (MOT) 评估的最佳指标是什么?为什么?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - 使用变量将 jQuery 处理程序分配给多个 DIV

javascript - 选择特定元素并更改其中一个元素的样式

javascript - 如何在 Leaflet.js 中添加多个标记?

c# - 关于 C# 中的锁定对象

c# - 一般业务对象实践(和异常错误 - redux)

javascript - Bootstrap Dropdown JavaScript 不适用于多个下拉菜单

javascript - 这是预加载图像的正确方法吗?