gpt4 book ai didi

javascript - 改变克隆的对象,也改变原始对象 [Javascript]

转载 作者:行者123 更新时间:2023-11-28 21:24:05 27 4
gpt4 key购买 nike

我正在使用 ES6 中的 Jest 为 React Components 编写一些测试。在一个测试中,我需要克隆一个导入的 json 并对克隆的对象进行变异,但是当我对克隆的对象进行变异时,原始对象也会发生变异!

import obj from './object.json';    // obj = { name: 'someName' }


describe('Testing a component', () => {

it('Some testing', () => {
const obj2 = Object.assign({}, obj); //Clone the object
obj2.name = 'otherName'; // Muatate the object

console.log(obj); // { name: 'otherName' }
});

})

为什么会这样?为什么当我改变克隆的对象时,原始导入的对象也会发生改变?

最佳答案

Object.assign 仅进行浅表克隆。这意味着内部对象仍然指向原始对象。

要进行深度克隆,您可以使用 Lodashimmutability-helper .

关于javascript - 改变克隆的对象,也改变原始对象 [Javascript],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45042924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com