最简便的实现方式是使用 JSON.parse(JSON.stringify(obj))
来进行深拷贝。这种方法可以很方便地实现深拷贝,并且能够确保两个对象之间不会相互影响。
可以像下面这样使用 JSON.parse(JSON.stringify(obj))
来实现深拷贝:
// 使用 JSON.parse(JSON.stringify(obj)) 进行深拷贝
const copiedInfoForm = JSON.parse(JSON.stringify(this.infoForm));
const copiedObjectCategoryData = JSON.parse(JSON.stringify(objectCategoryData));
// 合并修改后的infoForm
const mergedInfoForm = {
...copiedInfoForm,
...copiedObjectCategoryData
};
if (mergedInfoForm.other) {
mergedInfoForm.ahap7746.zdyfdx = {
option: ["2"],
other: copiedObjectCategoryData.other
};
}
使用 JSON.parse(JSON.stringify(obj))
会将对象转换成字符串再解析回对象,从而实现深拷贝。这样能够确保 copiedInfoForm
和 copiedObjectCategoryData
完全独立,修改其中一个对象不会影响另一个对象。
需要注意的是,这种方法对于大多数情况下是有效的,但是有一些特殊情况下可能会出现问题,比如对象中包含函数、循环引用等情况。在实际应用中,为了更加健壮的深拷贝,你可能需要使用成熟的库,例如 lodash
的 cloneDeep
方法。但对于大多数情况下,JSON.parse(JSON.stringify(obj))
是一种简单且有效的深拷贝方式。