javascript - 为什么在 JavaScript 中定义后可以更改对象 const?
问题描述
在 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
. 防止对象的突变是完全不同的事情 - 为此,您需要类似或使用immutable-jsObject.freeze
操作对象。
推荐阅读
- ios - 防止在 SwiftUI 中关闭模态视图控制器
- javascript - 如何在异步函数中访问外部请求的主体?
- image - 如何检测.png链接后面的webp文件?
- javascript - 有没有办法在 table.read 期间访问另一个表中的数据 - Azure 移动应用
- worhp - Worhp:局部不可行点
- java - 表格布局中的数据持久性
- string - 如何在 Flutter 中使用字符串插值来调用函数
- c# - 域模型与数据库模型不同吗?
- javascript - Javascript,一种处理调整大小事件的跨平台方式只有它发生
- reactjs - laravel-echo 如何工作 pusher 和 react js?