Javascript Immutable.js-为什么对记录调用map()会改变原始对象?

Javascript Immutable.js-为什么对记录调用map()会改变原始对象?,javascript,immutable.js,Javascript,Immutable.js,让我们创建一个不可变的。记录,并使用映射修改它: let R = Immutable.Record({a:1,b:2}); let r = new R(); let q = r.map(i => i * 2); 我希望r保持不变,q是记录{a:2,b:4}。但实际结果是r发生了变异,并且q(来自map()的返回值是未定义的) 为什么不可变对象会发生变异?确定对象何时发生变异以及何时返回新实例的规则是什么?Issue#268:噢,这实际上是一个bug,不是一个奇怪的特性。谢谢!Issue#

让我们创建一个不可变的
。记录
,并使用
映射修改它:

let R = Immutable.Record({a:1,b:2});
let r = new R();
let q = r.map(i => i * 2);
我希望
r
保持不变,
q
记录{a:2,b:4}
。但实际结果是
r
发生了变异,并且
q
(来自
map()
的返回值是
未定义的


为什么不可变对象会发生变异?确定对象何时发生变异以及何时返回新实例的规则是什么?

Issue#268:噢,这实际上是一个bug,不是一个奇怪的特性。谢谢!Issue#268:噢,这实际上是一个bug,不是一个奇怪的特性。谢谢!