gpt4 book ai didi

javascript - 为什么 JavaScript 中对象 const 定义后可以更改?

转载 作者:行者123 更新时间:2023-11-28 12:12:09 24 4
gpt4 key购买 nike

在 JavaScript 中:

const a = 6;
a = 2; // Error

const o = {};
o = 7; // Error
o.a = 5; // Good. Why?

const o = {a:1};
o.a = 2; // Good. Why?

我发现人们有时会定义一个 const 对象,但后来会更改它的值。为什么 const 定义后可以更改?

最佳答案

const 声明的变量意味着一件事:独立变量名以后不能用 = 重新分配.

相比之下,o.a = 5; 并没有重新分配变量名称 - 它改变了对象的内容,但它并没有改变 o 变量指向的内容内存。

要防止变量名称​​重新分配,请使用const。防止对象发生突变是完全不同的事情 - 为此,您需要类似 Object.freeze 的东西或使用 immutable-js 操作对象.

关于javascript - 为什么 JavaScript 中对象 const 定义后可以更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516721/

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