以下の内容はhttps://www.pandanoir.info/entry/2016/06/18/185302より取得しました。


immutableとconstの違いがわかりやすいコードを考えた

immutableとconstはとてもよく似ていて混乱しがちです。でも、コードを見れば一発で違いがわかります。

コード

const obj = {foo: 0}; // constである変数を作る
obj.foo = 42; // {foo: 0}はミュータブルなのでfooを変更できる
obj = {bar: 0}; // error! objへ再代入はできない!

let immutableObj = new Immutable({foo: 0}); // Immutableオブジェクトを生成してimmutableObjへ代入する。イミュータブルなオブジェクトはImmutable.jsなどのライブラリで生成できます
immutableObj.set('foo', 42); // immutableオブジェクトは変更できない
immutableObj.get('foo'); // fooは42ではなく0のまま
immutableObj = immutableObj.set('foo', 42); // 再代入することで変更できる

objはconstなので再代入できませんが、objが指し示すオブジェクトは変更可能です。

それに対して、immutableObjが指しているオブジェクトに変更を加えることはできません。しかし、immutableObjが何を指すかは変更可能(=再代入可能)です。




以上の内容はhttps://www.pandanoir.info/entry/2016/06/18/185302より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14