我正在查看Immutable.js的文档,具体如下:
var map1 = Immutable.Map({a:1,b:2,c:3});
var clone = map1;
但我很困惑,如何简单地将map1分配给克隆创建克隆而不是引用?
更新:
文档声明“如果一个对象是不可变的,可以简单地通过对其进行另一次引用而不是复制整个对象来”复制“.因为引用比对象本身小得多,这样可以节省内存并提高可能性依赖于副本(例如撤销堆栈)的程序的执行速度.“
我刚刚在jsbin中测试了这个,而clone做了=== map1.我认为他们在文档中使用“克隆”这个词有点误导.
最佳答案
由于Immutable.Map是不可变的,因此克隆的概念已经过时.他们的观点是你不必为克隆而烦恼,这没关系.
文档确实令人困惑,实际上它不是克隆的参考.无论如何克隆的效果都是一样的.