javascript对象属性值冲突

标签 javascript object properties

我不太确定问题标题, 这是情况,请看下面的示例代码

// original data
a = [
  {x : 1},
  {x : 2},
  {x : 3}
]

// assign to a variable  
b = a[0]

// do some change
b.x = 5

alert(a[0].x) 
// i thought it would still be 1 but it is 5, why???

*编辑
谢谢安 bool 和安德烈
我想我只需编写一个函数来循环对象属性以复制到新对象
再次感谢您的帮助:)

最佳答案

对象是通过引用分配的 - 这意味着当您修改引用该对象的任何内容时,它会在每次引用该对象的情况下对其进行修改。

b 仅存储对 a[0] 存储引用的同一对象的引用。

关于javascript对象属性值冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253184/

相关文章:

java - 将文本文件读取到对象的对象数组中?

javascript - 递归循环对象以构建属性列表

javascript - 测试嵌套 JavaScript 对象键是否存在

wpf - 如何在触发器中使用代码隐藏属性来更改控件属性?

javascript - 函数返回函数而不是对象

javascript - 如何将点击第一个按钮的第二个按钮传递给javascript函数

javascript - es2015 重新导出模块并覆盖重新导出模块的单个导出功能

javascript - React 中的平面数组与嵌套数组的处理方式不同

Java:引用图中的边

javascript - 如何以 Angular 访问 DOM 元素