JavaScript中浅拷贝和深拷贝的区别和实现

2025-04-07 00:40:44
推荐回答(1个)
回答1:

浅拷贝只是拷贝了引用, 数据在内存中还是一个, 如果引用的对象发生了变化, 该变量也会同步变化.

深拷贝相当于把内存上的数据拷贝了一份, 此时修改该变量不会影响原来的变量, 同理修改原来的变量也不会影响现在的变量.

浅拷贝:

const foo = { bar: 'bar', baz: 'baz' }
const ref_foo = foo

深拷贝(最简单的方法, 拷贝性能也不弱):

const foo = { bar: 'bar', baz: 'baz' }
const ano_foo = JSON.parse(JSON.stringify(foo))