赋值,浅拷贝,深拷贝

2021-06-23  本文已影响0人  c6e71129966d

对于引用类型来说:

1、【赋值】是相当于赋值了指针,并没有重新开辟一个新的内存空间。

也就是说:不管是多深的层次,只要有变化都会相互影响。

举例子:

2、【浅拷贝】:会开辟新的内存空间,但是只是对于引用类型里属性类型为简单类型的数据来说的(不会相互影响)。对于属性类型为引用类型的数据来说是会复制他的指针指向,不会开辟新的内存空间(改变引用类型的值,会相互影响)。

例子:

操作第二层的引用类型的数据

做了一个例子以为concat是深拷贝,因为都没有相互影响,其实是写错了,b[4]是引用类型,但是我直接给他赋值了,相当于给这个引用类型重新开辟了一个新的内存空间,所以不会影响到arr[4]。

例子如下:

对象的浅拷贝例子如下:

assign

【深拷贝】:从里到外不管啥类型 都会重新开辟内存空间,所以不会相互影响。可以递归,可以loadsh里的方法,jquery的extend(深浅都可以)

上一篇 下一篇

猜你喜欢

热点阅读