关于jquery:如何在不使用javascript更改第一个对象的情况下在现有对象中追加值?

How to append value in an existing object without change the first object with javascript?

本问题已经有最佳答案,请猛点这里访问。

我的javascript代码如下:

1
2
3
4
5
6
7
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指的是同一个对象:

1
var dataNew = data;

为了防止出现这种情况,您需要创建一个这样的EDOCX1[1]副本:

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

现在,dataNew的变化不会影响data