标签: javascript immutable.js
让我们创建一个Immutable.Record并使用map修改它:
Immutable.Record
map
let R = Immutable.Record({a:1,b:2}); let r = new R(); let q = r.map(i => i * 2);
我希望r保持不变,q为Record { a:2, b:4 }。但实际结果是r发生了变异,q(map()的返回值为undefined。
r
q
Record { a:2, b:4 }
map()
undefined
为什么不可变对象发生了变异?确定对象何时就地变异以及何时返回新实例的规则是什么?