深拷贝与浅拷贝

数据类型:

基本数据类型(String、Number、Boolean、Null、Undefined、Symbol (es6)

引用数据类型(Object、Array、Function)

基本数据类型是储存在栈中的,而引用数据类型是储存在堆中的在栈里面储存的只是她的指针指向堆中的地址

深拷贝与浅拷贝

深拷贝主要是针对引用数据类型的,使用浅拷贝复制数据的话只是复制了一个指针,内部数据的改变会影响原来的对象。就是浅拷贝只是拷贝了引用对象在栈中的地址,只有第一层才是深拷贝,第二层数据的改变会影响原来的数据。

数组对象里面的Object.assign(),Array.prototype.concat(), Array.prototype.slice()

实现的就是浅拷贝。

针对数组和对象可以实现深拷贝的方法有:

 JSON.parse(JSON.stringify())先把数据转换成JSON字符串在转换回来就可以实现深拷贝

这种方法对于方法来说不能实现深拷贝拷贝出来的对象是null

也可以使用递归的方法遍历数组创建新数组,或者使用lodash的cloneDeep()实现深拷贝

相关推荐

  1. 拷贝拷贝

    2024-04-06 07:24:06       38 阅读
  2. 拷贝拷贝

    2024-04-06 07:24:06       35 阅读
  3. 拷贝拷贝

    2024-04-06 07:24:06       31 阅读
  4. js的拷贝拷贝

    2024-04-06 07:24:06       49 阅读
  5. python 之 拷贝拷贝

    2024-04-06 07:24:06       32 阅读
  6. 【C++】拷贝拷贝

    2024-04-06 07:24:06       34 阅读
  7. 拷贝拷贝

    2024-04-06 07:24:06       38 阅读
  8. c++拷贝拷贝

    2024-04-06 07:24:06       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 07:24:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 07:24:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 07:24:06       82 阅读
  4. Python语言-面向对象

    2024-04-06 07:24:06       91 阅读

热门阅读

  1. WebView 后退键处理技巧:如何处理网页历史记录

    2024-04-06 07:24:06       32 阅读
  2. 如何使用CSS变量 - 通过代码示例解释

    2024-04-06 07:24:06       37 阅读
  3. 【力扣】168. Excel表列名称、171. Excel 表列序号

    2024-04-06 07:24:06       42 阅读
  4. [C++11] 理解委托构造函数

    2024-04-06 07:24:06       28 阅读
  5. VTK使用交互器来从三维体数据中提取二维切片

    2024-04-06 07:24:06       49 阅读
  6. VTK的交互器

    2024-04-06 07:24:06       38 阅读
  7. 【QT教程】QT6设计模式

    2024-04-06 07:24:06       39 阅读