实际上,即使我们知道了如何在各种情况下进行深拷贝,我们也仍然面临一些问题: 深拷贝实际上是很消耗性能的。(我们可能只是希望改变新数组里的其中一个元素的时候不影响原数组,但却被迫要把整个原数组都拷贝一遍,这不是一种浪费吗?)所以,当你的项目里有大量深拷贝需求的时候,性能就可能形成了一个制约的瓶颈了。
immutable的作用:
通过immutable引入的一套API,实现:
1.在改变新的数组(对象)的时候,不改变原数组(对象)
2.在大量深拷贝操作中显著地减少性能消耗
先睹为快:
) const map1 = Map({ a: 1, b: 2, c: 3 }) , 50) map1.) // 2 map2.) // 50
参考资料:
知乎《 javascript中的深拷贝和浅拷贝?》 https://www.zhihu.com/question/23031215
阮一峰 《ECMASript6入门》
MDN javascript 数组API
另外: 除了以上参考资料,文中的array.slice(0)和obj.concat()实现数组拷贝的方法实际上参考了网路上的一些文章,比如博客园,CSDN和脚本之家,但由于这些文章内容相似,这里就不列出其中来源了