美文网首页
js中的深复制与浅复制

js中的深复制与浅复制

作者: 莹莹宋 | 来源:发表于2018-07-16 16:54 被阅读0次

基本类型赋值

基本类型赋值是将是将值复制给这个变量,变量之间的赋值,是将变量的值给复制给其他变量。都是将值复制存到相应栈里面。

引用类型赋值

引用类型赋值,是将引用类型的指针进行复制,引用类型存在堆中,变量存储的是引用类型的指针,指针指向引用类型,例如图1。

图1

浅复制

es6中已经有了浅复制的用法,Object.assign(),复制第一层,什么是第一层呢,如图2所示

图2

同之前的对象的赋值是一个道理,但是浅复制会将第一层进行复制,第二层以后的对象将不会被复制。

深复制

深复制顾名思义就是全部都复制,复制一个新的对象放到新的指针里面,两个内容完全一样但是互不影响。深复制使用递归,将对象进行复制。如图3。

图3

深复制还可以使用json的方法去写,使用JSON.parse(JSON.stringify(Arr)),对数据进行深复制。

相关文章

网友评论

      本文标题:js中的深复制与浅复制

      本文链接:https://www.haomeiwen.com/subject/bcwomxtx.html