【问题标题】:immutability of const in es6 [duplicate]es6中const的不变性[重复]
【发布时间】:2017-04-02 16:26:27
【问题描述】:

我是新手,有一个关于 es6 中的不变性的问题,以帮助我理解不变性。

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

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

然而,这似乎是有效的:

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

本质上,我试图将我的大脑包裹起来的概念是,虽然helloWorld 是不可变的,但它所持有的价值却不是。 如何为什么这仍然代表不变性?为什么要以这种方式使用它而不是使用 let 变量?

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

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

首先const 不是 JSX 的一部分,它是 ECMAScript6 中的语言特性。 const 只是将变量设为常量,它所引用的值仍然是可变的。

如果您想让值不可变,请使用Object.freezeImmutable.js 之类的库。

【讨论】:

  • 确实,我知道这是它的工作方式。我的问题更多的是为什么
  • 只是const 并不代表不变性。如果你已经看到在 react 组件中使用 const,因为这些变量不会改变,并且与不变性无关。
猜你喜欢
  • 2020-03-13
  • 2016-01-28
  • 1970-01-01
  • 2019-03-30
  • 2018-07-08
  • 2017-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多