gpt4 book ai didi

Javascript 数组推送更新也克隆了对象

转载 作者:行者123 更新时间:2023-12-02 07:21:31 25 4
gpt4 key购买 nike

我刚刚注意到克隆和推送项目有些奇怪。这是示例:

let a = { foo: [1,2] };
let b = Object.assign({}, a) // cloning object and getting new reference
a === b // gives false which is what I want

现在我在对象 a 上执行 push:

a.foo.push(3)

现在 a.foo[1,2,3]b.foo 也是 [1,2, 3]

但如果我这样做

a.foo = a.foo.concat(4)

a.foo[1,2,3,4]b.foo[1,2, 3]

问题是:为什么会这样?

最佳答案

a.foo 和 b.foo 指向相同的引用,但是 .concat() 返回一个新数组,因此它们现在指向 2 个不同的数组引用

关于Javascript 数组推送更新也克隆了对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44647197/

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