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



我的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/

我像那样在对象中附加值

控制台.log(数据(和控制台.log(数据新(的结果是否存在 id

我想要变量数据没有id

所以只有变量数据新有 id

我该怎么做?

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

这就是为什么当你这样做时,dataNewdata引用同一个对象:

var dataNew = data;

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

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

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

最新更新