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

Javascript 只需使用Immutable.js将对象分配给变量,即可克隆新对象,javascript,immutability,Javascript,Immutability,我正在查看Immutable.js的文档,具体如下: var map1 = Immutable.Map({a:1, b:2, c:3}); var clone = map1; 但我很困惑,简单地将map1分配给clone如何创建一个克隆而不是一个引用 更新: docs声明“如果一个对象是不可变的,那么只需对其进行另一次引用而不是复制整个对象,就可以“复制”它。因为引用比对象本身小得多,这会节省内存,并有可能提高依赖副本(如撤销堆栈)的程序的执行速度。” 不过,我只是在一个jsbin中测试了这一

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

var map1 = Immutable.Map({a:1, b:2, c:3});
var clone = map1;
但我很困惑,简单地将map1分配给clone如何创建一个克隆而不是一个引用

更新: docs声明“如果一个对象是不可变的,那么只需对其进行另一次引用而不是复制整个对象,就可以“复制”它。因为引用比对象本身小得多,这会节省内存,并有可能提高依赖副本(如撤销堆栈)的程序的执行速度。”


不过,我只是在一个jsbin中测试了这一点,克隆确实===map1。我认为他们在文档中使用“克隆”一词有点误导。

因为
不可变。Map
是不可变的,克隆的概念已经过时。他们的观点是,你不必担心克隆与否,这无关紧要


这些文档确实令人困惑,而且确实是一个参考,而不是一个克隆。不管怎样,克隆的效果都是一样的。

map1不是你传入的对象的克隆吗?我不确定这是否仍然是他们文档的一部分。无论如何,事实上,他们甚至把它放在文档中,这只会混淆javascript的引用性质,我们都知道这是真的。