我正在查看 Immutable.js 的文档,具体如下:
var map1 = Immutable.Map({a:1, b:2, c:3});
var clone = map1;
但我很困惑如何简单地将 map1 分配给 clone 来创建克隆而不是引用?
更新: 文档状态“如果一个对象是不可变的,它可以简单地通过对它进行另一个引用而不是复制整个对象来“复制”。因为引用比对象本身小得多,所以这会节省内存和潜在的提升依赖副本(例如撤消堆栈)的程序的执行速度。”
虽然我只是在 jsbin 中测试了它,但克隆确实 === map1。我认为他们在文档中使用“克隆”一词有点误导。
最佳答案
由于 Immutable.Map
是不可变的,因此克隆的概念已过时。他们的观点是,您不必为克隆与否操心,这无关紧要。
文档确实令人困惑,而且它确实是引用而非克隆。无论如何克隆的效果都是一样的。
关于javascript - 只需使用 Immutable.js 将对象分配给变量即可克隆新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34255594/