首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免角/类型变量绑定

避免角/类型变量绑定
EN

Stack Overflow用户
提问于 2019-07-19 18:53:04
回答 2查看 281关注 0票数 1

我需要创建对象的克隆,而不需要创建对象的引用。当我试图复制EquipmentClass时,女巫是我对它的克隆的主要对象,如果我更改EquipmentClass的某些属性,它也会改变我的EquipmentClassCloneEdit。我不希望这种事发生。

我试着像这样分配价值:

代码语言:javascript
复制
this.equipmentClassCloneEdit = Object.assign({}, this.equipmentClass);

这是我的模型:

代码语言:javascript
复制
export class EquipmentClass {
    equipmentClassId: number;
    name: string;
    description: string;
    isDeleted: boolean;
    propertyValuesList: EquipmentClassPropertyValue[] = [];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-19 19:05:11

试试this.equipmentClassCloneEdit = JSON.parse(JSON.stringify(this.equipmentClass))

Object.assign()创建一个浅拷贝,这样它就不会在非原语(如propertyValuesList数组)上工作。

票数 1
EN

Stack Overflow用户

发布于 2019-07-19 19:23:38

您可以使用lodash的cloneDeep方法来进行深度克隆。https://lodash.com/docs/#cloneDeep

  1. 安装“寄存”包
  2. import cloneDeep from 'lodash/cloneDeep';
  3. 就这么说吧:this.equipmentClassCloneEdit = cloneDeep(this.equipmentClass);

使用这种克隆函数可以更好地从字符串化到解析解决方案,因为它还保留了JSON在字符串化时(如函数、符号、BigInts等)所包含的成员。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57118210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档