📜  将变量设置为对象而不编辑旧对象 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:39:15.704000             🧑  作者: Mango

将变量设置为对象而不编辑旧对象

在JavaScript中,我们可以将一个变量设为一个新对象,而无需更改旧对象的值。这种方法可以使代码更加清晰和易于理解。

示例
const oldObj = {key1: 'value1', key2: 'value2'};
const newObj = {...oldObj, key3: 'value3'};

console.log(oldObj); // {key1: 'value1', key2: 'value2'}
console.log(newObj); // {key1: 'value1', key2: 'value2', key3: 'value3'}

在上面的示例中,我们首先定义了一个旧对象oldObj,它包含两个键值对。然后,我们将此对象拷贝到一个新的对象中,并添加一个新的键值对key3: 'value3'。最后,我们打印出旧对象和新对象。通过这个例子,我们可以看到即使我们没有修改旧对象,它的值仍然保持不变,而我们的新对象则包含旧对象的值和新值。

对象拷贝的其他方式

除了使用扩展运算符(...)之外,还有其他方法可以用于拷贝一个对象到一个新对象中,并添加新的键值对。下面是一些例子:

使用Object.assign()
const oldObj = {key1: 'value1', key2: 'value2'};
const newObj = Object.assign({}, oldObj, {key3: 'value3'});

console.log(oldObj); // {key1: 'value1', key2: 'value2'}
console.log(newObj); // {key1: 'value1', key2: 'value2', key3: 'value3'}
使用Object spread operator
const oldObj = {key1: 'value1', key2: 'value2'};
const newObj = {...oldObj, key3: 'value3'};

console.log(oldObj); // {key1: 'value1', key2: 'value2'}
console.log(newObj); // {key1: 'value1', key2: 'value2', key3: 'value3'}
总结

在JavaScript中,我们可以将一个变量设为一个新对象,而无需更改旧对象的值。这种方法可以使代码更加清晰和易于理解。除了使用...运算符之外,我们还可以使用Object.assign()Object spread operator方法。