JS: 关于深拷贝和浅拷贝
2021/9/8 23:10:26
本文主要是介绍JS: 关于深拷贝和浅拷贝,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021年9月8日
《js高级程序设计》p139中讲解Array.from()方法。该方法是对数组执行浅拷贝,后进行测试。
浅拷贝:只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。
深拷贝:会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
此处加一句:浅拷贝的对象若包含子对象,当新的对象对子对象发生改变时则会使原对象子对象一同改变,若新的对象只改变第一层的数据,则源对象不会改变。
浅拷贝只是基础类型的拷贝,对于对象和数组只是复制其指针。而深拷贝是和源对象没有任何共享的,一般深拷贝通过循环遍历实现。
1 let a1 = [1, 2, 3, 4, [true, true], { "num": 0, "sum": 1 }]; 2 let a2 = Array.from(a1); 3 console.log(a1 == a2); //false 4 console.log(a1 === a2); //false 5 a1[0] = 0; 6 a1[4][0] = false; 7 a1[5].num = 1; 8 console.log(a1); // [0,2,3,4,[false,true],{num:1,sum:1}] 9 console.log(a2); //[1,2,3,4,[false,true],{num:1,sum:1}] 10 console.log(typeof (a1));//object 11 console.log(typeof (a2));//object 12 console.log(a2 instanceof Array);//true
这篇关于JS: 关于深拷贝和浅拷贝的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程