javascript - 如何在现有对象中附加值而不用javascript更改第一个对象?

标签 javascript jquery object

我的 JavaScript 代码是这样的:

var data= {product_id: 4, name: 'nike'}
console.log(data)

var dataNew = data
dataNew.id = 1

console.log(dataNew)

演示是这样的:https://jsfiddle.net/oscar11/69dw8dv1/

我像这样在对象中附加值

console.log(data)和console.log(dataNew)的结果是否存在id

我想要 var 数据没有 id

所以只有 var dataNew 有 id

我该怎么做?

最佳答案

在 JavaScript 中,除非对象是原始数据类型,否则会分配对象引用,而不是对象值。

这就是为什么当您执行此操作时 dataNewdata 引用同一个对象:

var dataNew = data;

为了防止这种情况,您需要创建数据的副本,如下所示:

var dataNew = Object.assign({}, data);

现在,dataNew 中的更改不会影响 data

关于javascript - 如何在现有对象中附加值而不用javascript更改第一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47281280/

相关文章:

javascript - Vue.js 在组件/应用程序之外观察 DOM 元素属性

javascript - 使用查询旋钮更改旋钮的颜色

javascript - 替换HTML中的JS内容?

javascript - 如何用鼠标悬停打开每一个里

javascript - php jQuery 自动完成功能在 laravel 中无法正常工作

javascript - 将对象拆分为 2 个数组 javascript

javascript - 为什么 Shift+Click 在 Firefox 中为 D3 图像打开新选项卡而不是 HTML 图像

jquery - IE7 - 使用 Jquery 时的 Div 对齐问题

javascript - 未捕获的类型错误 : Object #<object> has no method 'method'

javascript - 通过引用将服务中对象的值绑定(bind)到 Controller 中的对象