HTML5技术

【javascript】详解javaScript的深拷贝 - 外婆的彭湖湾(3)

字号+ 作者:H5之家 来源:H5之家 2017-08-15 12:01 我要评论( )

实际上,即使我们知道了如何在各种情况下进行深拷贝,我们也仍然面临一些问题: 深拷贝实际上是很消耗性能的 。(我们可能只是希望改变新数组里的其中一个元素的时候不影响原数组,但却被迫要把整个原数组都拷贝一

实际上,即使我们知道了如何在各种情况下进行深拷贝,我们也仍然面临一些问题: 深拷贝实际上是很消耗性能的。(我们可能只是希望改变新数组里的其中一个元素的时候不影响原数组,但却被迫要把整个原数组都拷贝一遍,这不是一种浪费吗?)所以,当你的项目里有大量深拷贝需求的时候,性能就可能形成了一个制约的瓶颈了。

 

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和脚本之家,但由于这些文章内容相似,这里就不列出其中来源了

 

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 一次浴火重生的MySQL优化(EXPLAIN命令详解) - 禁心尽力

    一次浴火重生的MySQL优化(EXPLAIN命令详解) - 禁心尽力

    2017-08-02 14:00

  • AngularJS“路由”的定义概念、使用详解——AngularJS学习资料教程 - 我叫小熊

    AngularJS“路由”的定义概念、使用详解——AngularJS学习资料教程 -

    2017-07-12 11:01

  • [javascript 实践篇]——那些你不知道的“奇淫巧技” - FannieGirl

    [javascript 实践篇]——那些你不知道的“奇淫巧技” - FannieGirl

    2017-07-11 09:02

  • Docker Machine 详解 - sparkdev

    Docker Machine 详解 - sparkdev

    2017-06-26 13:01

网友点评
/