javascript - es6 中 const 的不变性

标签 javascript reactjs

我是 React 新手,对 es6 中的不变性有一个疑问,以帮助我理解不变性。

例如,我知道这在 JSX 中是无效的,因为它正在重新分配 const。

const helloWorld = 'Hello World';
helloWorld = 'Bye World';

但是,这似乎是有效的:

const helloWorld = {greeting: 'hello World'};
helloWorld.greeting = 'bye world';

本质上,我试图理解的概念是虽然helloWorld是不可变的,但它所持有的值(value)却不是。 如何以及为什么这仍然代表不变性?为什么你会以这种方式使用它而不是使用 let变量?

感谢并为菜鸟问题道歉(如果是这样的话)! :)

最佳答案

第一个 const 不是 JSX 的一部分,它是 ECMAScript6 中的语言功能。 const 仅使变量成为常量,其引用的值仍然是可变的。

如果您想让值不可变,请使用 Object.freeze 或类似 Immutable.js 的库。 .

关于javascript - es6 中 const 的不变性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43170659/

相关文章:

javascript - 如何解决我的案例中的单元测试问题?

javascript - 当我从 mapstatetoprops 调用它时,Redux Selector 没有触发

javascript - react 数据拉取不起作用

reactjs - 如何为 Material-ui 的组件设置主浅色/深色?我正在使用像这里这样的自定义主题

javascript - react 翻转移动没有动画

javascript - 获取 '' 不变违规 : Native module cannot be null .'' when I run the test

javascript - ionic native 存储 : storage. getItem() 不起作用

javascript - 每当将函数添加到数组中时,如何从充当队列的数组中执行函数?

javascript - 如何从 observable 返回值并将其分配给变量

javascript - 在 native react 中制作响应按钮