2017-04-02 7 views
1

私は、不変性の理解を助けるためにes6の不変性について反応して質問があります。es6のconstの不変性

たとえば、JSXではこれがconstを再割り当てするため無効であることがわかりました。

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

ただし、これは有効なようだ:本質的には

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

、私は周りに私の脳をラップしようとしている概念はhelloWorldは不変であるが、一方で、それが保持している値ではないという考えであります。 どのようになぜこれは不変性を表していますか?なぜ、let変数を使用する代わりに、この方法で使用しますか?

それがそうであれば、ありがとう、お詫び申し上げます。 :)

+3

これは、reactとjsxとは関係ありません。フレームワークに飛び込む前に、まず基本的なJavaScriptを読んでください。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const – Artin

答えて

1

最初constはJSXの一部ではなく、ECMAScript6の言語機能です。 constは、変数を定数にし、それが参照する値は変更可能です。

値を変更不可能にする場合は、Object.freezeまたはImmutable.jsのようなライブラリを使用します。

+0

確かに、私はこれが動作する方法であることを認識しています。私の質問は_why_にもっとある。 – user1337902

+0

単に 'const'は不変性を表していません。反応コンポーネント内で 'const'を使用しているのは、それらの変数が変更されることが意図されておらず、不変性とは何の関係もないからです。 –