我正在查看Immutable.js的文档,具体来说是以下内容:
var map1 = Immutable.Map({a:1, b:2, c:3});
var clone = map1;
但我不清楚,为什么简单地将map1分配给clone会创建一个克隆而不是一个引用?
更新:文档说明:“如果一个对象是不可变的,那么可以通过将其分配给另一个引用来“复制”它,而不是复制整个对象。因为引用比对象本身小得多,所以这样做可以节省内存,并为依赖副本(如撤消堆栈)的程序提供执行速度上的潜在提升。”
我在jsbin中进行了测试,发现clone和map1是===的。我认为文档中对“clone”一词的使用有些误导。
map1
不是你传入的对象的克隆吗? - huysentruitw