害羞的新手 发表于 2022-5-10 17:48:01

浅拷贝改变数据、深拷贝改变数据和console.log()打印数据的执行步骤是怎样的

有这样一串代码const a = { name: '小明', age: '18', else: { sex: '男' }}
    const b = Object.assign({}, a)
    console.log(a)
    console.log(b)
    b.name = '小红'
    console.log(a)
    console.log(b)
    b.else.sex = '女'
    console.log(a)
    console.log(b)
希望的是打印出{ name: '小明', age: '18', else: { sex: '男' }}{ name: '小明', age: '18', else: { sex: '男' }}{ name: '小明', age: '18', else: { sex: '男' }}{ name: '小红', age: '18', else: { sex: '男' }}{ name: '小明', age: '18', else: { sex: '女' }}{ name: '小红', age: '18', else: { sex: '女' }}
结果直接全部sex都为女
想知道执行顺序是什么?知道浅拷贝是指针指向堆内存,但对执行速度不明,对底层原理不明。

Twilight6 发表于 2022-5-10 19:24:03



看看这篇文章有没帮助:

https://blog.csdn.net/qq_39207948/article/details/81067482

害羞的新手 发表于 2022-5-11 14:39:42

Twilight6 发表于 2022-5-10 19:24
看看这篇文章有没帮助:

https://blog.csdn.net/qq_39207948/article/details/81067482

很抱歉,看完后并没有感觉直击要害

Twilight6 发表于 2022-5-11 14:41:16

害羞的新手 发表于 2022-5-11 14:39
很抱歉,看完后并没有感觉直击要害



好吧,抱歉,你可以去 CSDN 逛逛看

页: [1]
查看完整版本: 浅拷贝改变数据、深拷贝改变数据和console.log()打印数据的执行步骤是怎样的