关于js中的浅拷贝 || 深拷贝
在js中经常会对一个数据进行拷贝 保留副本,但是在js中有拷贝的指针问题 下面是几点关于深拷贝 浅拷贝的方法
浅拷贝
复杂数据类型拷贝的是地址 浅拷贝都会产生一改全改的问题
- 变量的赋值 或者是循环obj 数据进行一一赋值
( 直接声明一个变量讲一个需要拷贝的数据赋值给变量 )
直接将obj 赋值给了 newObj 但是这两个变量在内存中的指针是一样的, 修改一个另外一个也会改变 (一改全改) - es6中的剩余参数 (拷贝的也是地址 ) (一改全改)
- 运用es6中的Object.assign( )
- 数组中的拷贝
深拷贝
关于拷贝的数据类型子只要是复杂数据类型就需要将地址里边的所有的数据全部拷贝 可以理解为判断是不是复杂类型,如果是复杂类型就讲数据在遍历一遍 - JSON 方法
使用场景(拷贝的数据中没有函数, 会忽略对象中的undefined)
代码如下: - jQuery中的extend
7
每次都判断数据中的每一项数据看看是不是复杂数据类型 如果是就重新调用函数 讲每一项都进行拷贝
/*
初入前端的小菜鸟
以上属于个人理解 欢迎各位大牛的指导, 感谢
*/