只需使用 Immutable.js 将对象分配给变量即可克隆新对象

Clone a new object simply by assigning object to a variable using Immutable.js

我正在查看 Immutable.js 的文档,具体如下:

var map1 = Immutable.Map({a:1, b:2, c:3});
var clone = map1;

但我很困惑如何简单地将 map1 分配给 clone 来创建克隆而不是引用?

更新: 文档状态 "If an object is immutable, it can be "copied" 只是通过对它进行另一个引用而不是复制整个对象。因为引用比对象本身小得多,所以这会节省内存并可能提高程序的执行速度依赖副本(例如撤消堆栈)。"

虽然我只是在 jsbin 中测试了这个,但克隆确实 === map1。我认为他们在文档中使用 'clone' 这个词有点误导。

由于 Immutable.Map 是不可变的,克隆的概念已经过时。他们的观点是你不必为克隆与否而烦恼,这并不重要。

文档确实令人困惑,而且它确实是参考而非克隆。反正克隆出来的效果都是一样的