我有以下情况。我有两个实例 originalMember 和 toSaveMember ,两个实例都是 Person 。 如何将 toSaveMember 中的所有值覆盖到 originalMember ,但仍保留与originalMember相同的引用? 这相当于:
originalMember.name = toSaveMember.name;
originalMember.age = toSaveMember.age;
我不想使用上面的解决方案,因为我不想跟踪新字段。我想要一些自动的东西 有人有任何吸烟吗?
谢谢!
答案 0 :(得分:1)
您可以使用Object.assign
将所有属性设置为toSaveMember
到originalMember
,同时为两者保留单独的对象引用:
Object.assign(originalMember, toSaveMember);
如果您的环境不支持ES6,那么可以使用polyfill for Object.assign
旧版本。
答案 1 :(得分:0)
你可以保留旧的但添加新的东西。
private newMember(_name: string, _age: number){
originalMember.name = toSaveMember.name;
originalMember.age = toSaveMember.age;
// or like @Saravana
originalMember = toSaveMember;
在此之后设置新名称和年龄
toSaveMember.name = _name;
toSaveMember.age = _age;
}
Ofc不要忘记在组件范围内声明两个对象。 (这一点。)
如果您想制作原始会员的列表,请创建一个数组并推送array[0]
原始成员array[1]
第二个成员中的值,依此类推。