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

标签 javascript immutability

我正在查看 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/

相关文章:

java - 如何使非原始类成员不可变

java - 一个不可变的类成员应该有一个访问方法还是允许公开?

用于强制自定义类型的不变性的 Python 元类

javascript - 十字光标 HTML

javascript - AngularJS Promises 返回错误但成功将内容发送到数据库

java - 具有副作用的不可变对象(immutable对象)

python - 具有写时复制功能的纯功能数据结构?

javascript - 如何在模态窗口中自动调整 Kendo UI 网格的大小

javascript - Jasmine Rails,未从子目录加载 src_files

javascript - 每次选中和取消选中复选框时如何在不单击表单提交按钮的情况下在数据库中插入值