読者です 読者をやめる 読者になる 読者になる

Panda Noir

JavaScript の限界を究めるブログです。

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

JavaScript

immutableとconstはとてもよく似ていて混乱しがちですよね。

コード

const obj = {foo: 0};
obj.foo = 42;
obj = {bar: 0}; // error!

let immutableObj = new Immutable({foo: 0}); // Immutableオブジェクトを生成する。Immutable.jsなどで生成できます
immutableObj.set('foo', 42);
immutableObj.get('foo'); // 0
immutableObj = new Immutable({foo: 42});

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

対してimmutableObjが指すオブジェクトは変更できません。しかし、immutableObjが何を指すかは変更可能(=再代入可能)です。