gpt4 book ai didi

javascript - 删除引用的 JS 对象中的属性

转载 作者:行者123 更新时间:2023-11-28 14:28:51 25 4
gpt4 key购买 nike

假设我想删除 JS 对象中的属性

const source = {
nestA: {
nestB: {
nestC: 'deleteMe'
}
}
}
const clone = {}
clone.nestA = {...source}.nestA
delete clone.nestA.nestB
console.log(source)

执行上面的脚本
期望:保持不变
实际:source 将变为 {}

但是,如果我只是删除clone.nestAsource将按预期保持不变

问题:删除clone.nestA.nestB如何影响source。但是删除clone.nestA不会吗?

最佳答案

How come delete clone.nestA.nestB affects source, but delete clone.nestA doesn't?

sourceclone 是不同的对象。第三个对象是从 source.nestA 属性和 clone.nestA 属性引用的。 (另一个对象位于其 nestB 属性上)。

当您删除 source 上的属性(例如 source.nestA 属性)时,只会影响 source 对象。

当您删除第三个对象上的属性时,例如 source.nestA.nestBclone.nestA.nestB(这是同一对象上的相同属性) ,你只影响第三个对象。只是 sourceclone 现在都引用了缺少属性的对象。

关于javascript - 删除引用的 JS 对象中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52264936/

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