js创建对象的浅拷贝。

31 阅读1分钟

需求:我需要隔离对象

JavaScript 中的对象是引用类型,这意味着当你创建一个对象并将其赋值给另一个变量时,它们实际上是指向同一个对象的引用。因此,如果你想要隔离对象,你需要创建一个对象的副本,而不是共享同一个引用。

1.使用扩展运算符 (...): 如果对象的结构相对简单,你可以使用扩展运算符创建一个浅拷贝。这将复制对象的属性,但如果对象的属性是对象引用,那么这些引用将仍然是相同的。

const originalObject = { name: 'John', age: 30 };
const copyObject = { ...originalObject };

2.使用 Object.assign() 方法: 这个方法也可以用于创建对象的浅拷贝

const originalObject = { name: 'John', age: 30 };
const copyObject = Object.assign({}, originalObject);

这两种方法只会复制对象的第一层属性。如果对象的属性是对象引用,那么这些引用仍然会指向相同的对象。

如果你需要创建一个深拷贝,即使对象的属性是对象引用,也要复制它们的内容,你需要使用递归或者第三方库来完成。一些流行的 JavaScript 库,如 lodash 或 immer,提供了深拷贝对象的方法。