首页 > 其他分享 >TypeScript的深拷贝与浅拷贝

TypeScript的深拷贝与浅拷贝

时间:2023-07-24 15:24:34浏览次数:47  
标签:TypeScript dataMangager userData1 数组 拷贝 getUserDataMap

今天在开发过程中遇到深拷贝与浅拷贝的问题

const userData1: number[][] = this.dataMangager.getUserDataMap();
该行代码中的userData1 是一个指向 this.dataMangager.getUserDataMap() 返回的二维数组的引用。当 this.dataMangager.getUserDataMap() 返回的二维数组发生改变时,userData1 仍然指向同一个数组,因此 userData1 也会随之改变。

换句话说,userData1 和 this.dataMangager.getUserDataMap() 引用的是同一个数组对象,因此它们会同步变化。

解决此问题用到了下文链接中的方法:

const  userData1: number[][] = JSON.parse(JSON.stringify(this.dataMangager.getUserDataMap()));

【ionic开发】TypeScript的深拷贝与浅拷贝 - 简书 (jianshu.com

标签:TypeScript,dataMangager,userData1,数组,拷贝,getUserDataMap
From: https://www.cnblogs.com/kekit-rei/p/17577307.html

相关文章

  • java深浅拷贝
    对于Java拷贝的理解在java语言中,当我们需要拷贝一个对象的时候,常见的会有两种方式的拷贝:深拷贝和浅拷贝。浅拷贝只是拷贝了原对象的地址,所以原对象的任何值发生改变的时候,拷贝对象的值也会随之而发生变化。拿地址。深拷贝则是拷贝源对象的所有值而不是地址,所以即源......
  • java list 深拷贝
    JavaList深拷贝的实现方法概述在Java开发中,List是一个常用的集合类型,它可以存储多个元素。有时我们需要对List进行复制,得到一个全新的副本,即深拷贝。本文将介绍如何在Java中实现List的深拷贝。流程下面是实现JavaList深拷贝的步骤:步骤操作1创建一个新的List对象......
  • SD卡分区 与 固件拷贝
    参考资料:IMX_LINUX_USERS_GUIDE.pdfCopyingthefullSDcardimage可以制作一个SD卡镜像,SD卡镜像是包含分区,分区内存放uboot、kernelimage、设备树、根文件系统,一次性拷贝到SD卡中sudoddif=<imagename>.wicof=/dev/sdxbs=1M&&sync 整个SD卡的内容被SD卡镜像替......
  • 如何导出 1Password 密码库拷贝到另个1password账户
    导出目前登录名为1pass账户选择所有项目-》导出-》你的账号名导出格式选择1PUX会出现一个名为1PasswordExport-TCETPFBRCREDJF7UKOT3TY2BCE-20230723-133048.1pux文件导入目前登录名为2pass账户选择导入-》从文件选择刚刚生成的名为1PasswordExport-TCETPFBRCREDJF7UK......
  • TypeScript中的keyof和in
    keyof使用keyof操作符接受一个对象类型作为参数,返回该对象属性名组成的字面量联合typeDog={name:string;age:number;};typeD=keyofDog;//typeD="name"|"age"可以看到keyofany返回的是一个联合类型:string|number|symbol,结合前文说到keyof是为了取得......
  • TypeScript 学习笔记
    什么是TypeScript?TypeScript是JavaScript的一个超集,支持ECMAScript6标准,它可以编译成纯javaScript,可以运行在任何浏览器上。安装TypeScriptnpminstall-gtypescript安装完成后我们可以使用tsc命令来执行TypeScript的相关代码tsc-vVersion5.1.6新建一个a......
  • 58.请使用vue3+vite+typescript+element-plus+setup语法糖,使用xlsx和file-saver实现保
    1<template>2<div>3<el-table4:data="mergedTableData"5border6stripe7>8<!--表头-->9<el-table-column10prop="date"11label="......
  • 拷贝构造函数 和 移动构造函数 深拷贝
    采用了深拷贝的方式,obj2 和 obj3 的 data 成员变量指向不同的内存空间,因此可以独立地释放资源而不会出现重复释放的问题.classMyClass{public:int*data;intsize;//默认构造函数MyClass():data(nullptr),size(0){}//拷贝构造函数(深拷......
  • [Typescript] Queue
    UsingLinkedlisttoimplementaQueue.Injavascript,ifyouwanttopushaiteminfrontofanArray,itneedtoshifttherestofitems,notgoodforperformance.UsingLinkedListisO(1)oeprationforenqueanddeque, whichisbetter.Usecase:Let&#......
  • 拷贝构造函数 和 移动构造函数的 浅拷贝
    classMyClass{public:int*data;//默认构造函数MyClass():data(nullptr){}//拷贝构造函数(浅拷贝)MyClass(constMyClass&other):data(other.data){}//移动构造函数(浅拷贝)MyClass(MyClass&&other)noexcept:data(other.data......