object.分配更改属性

问题描述 投票:0回答:1

我想复制一个变量的对象来分配给另一个变量,并且只更改新变量对象中的一些属性,而不更改旧对象。

我为新变量创建新对象并更改属性,但是当打印出旧变量时也发生了更改。如何解决?

let thongTinMuaXeKhachA = {
    iDluotmua:`abc129867`,
    nguoiSohuu:{
        ten: `Pham Van A`,
        tuoi: 35,
        gioTinh: `nam`,
        namSinh: 1984,
        diaChi: `ha noi`,
        cccd: 12345678,
    },
    thongTinXe: {
        tenXe: `Vinfast luxA 2.0`,
        hangXe: `Vinfast`,
        soCho: 5,
        tocDoTrungBinh: 90,
        mauSac: `Den`,
        giaBan: 1200000000,
        namSanXuat: 2019,
    },
    ngayMua: `26/01/2022`,
};
console.log(`Thong tin khach hang A:`,thongTinMuaXeKhachA);
console.log(`--------------------------`);

let thongTinMuaXeKhachB = Object.assign({},thongTinMuaXeKhachA);
thongTinMuaXeKhachB.nguoiSohuu.ten = `Pham Van B`;
console.log(thongTinMuaXeKhachA);
console.log(thongTinMuaXeKhachB);    
javascript object copy
1个回答
0
投票

这是因为即使你有一个新变量,你原来对象的引用也不会改变。你需要克隆你的对象。您可以使用展开运算符。

const original = { a: 1, b: 2 };
const clone = { ...original };

然后您可以使用克隆来进行更改。这将保留您的原始对象,并且仅更改克隆的对象。

© www.soinside.com 2019 - 2024. All rights reserved.