gpt4 book ai didi

javascript - 设置对象属性 :! object.property 是否易失?

转载 作者:行者123 更新时间:2023-12-02 23:22:00 24 4
gpt4 key购买 nike

这段代码是否会改变对象或者以其他方式改变对象?如果发生的话我该如何避免?

const object = {property: false};
const test = {property: !object.property};

最佳答案

您的代码不会改变任何内容。当您创建 test 时,原始 object 不会受到影响,因为 .property 是 bool 值(因此是值类型),因此您的新分配是仅按值(value)计算。

const test = {property: !object.property}; // assigns a new value to a new reference

另一方面,这会:

const object = {property: false};
object.property = !object.property; // mutating the object
const test = object; // copying the reference

不过,你可以这样做:

const object = {property: false};
const test = {...object, property: !object.property}; // creates a copy of object and over-writes the value of the new property

关于javascript - 设置对象属性 :! object.property 是否易失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56908907/

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