我是新手,对es6中的不变性有疑问,以帮助我理解不变性。
例如,我知道这在JSX中是无效的,因为它重新分配了一个const。
const helloWorld = 'Hello World';
helloWorld = 'Bye World';
然而,这似乎是有效的:
const helloWorld = {greeting: 'hello World'};
helloWorld.greeting = 'bye world';
从本质上讲,我试图包围我的大脑的概念是这样的想法虽然helloWorld
是不可变的,但它所拥有的价值却不是。 如何和为什么这仍然代表不变性?为什么你会以这种方式使用它而不是使用let
变量?
感谢并为noob问题道歉,如果是这样的话! :)
答案 0 :(得分:1)
首先const
不是JSX的一部分,它是ECMAScript6中的语言功能。 const
仅使变量成为常量,并且它引用的值仍然是可变的。
如果您想使值不可变,请使用Object.freeze
或类似Immutable.js的库。