es6中const的不变性

时间:2017-04-02 16:26:27

标签: javascript reactjs

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

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

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

然而,这似乎是有效的:

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

从本质上讲,我试图包围我的大脑的概念是这样的想法虽然helloWorld是不可变的,但它所拥有的价值却不是。 如何为什么这仍然代表不变性?为什么你会以这种方式使用它而不是使用let变量?

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

1 个答案:

答案 0 :(得分:1)

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

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