深拷贝和浅拷贝的几种方法
浅拷贝
- for… in… 循环
var a={name:'zxx',age:123456,arr:[1,2,3],ob:{new:'zxxx'}
}
var b={}
for(var k in a){b[k]=a[k];
}
2.Object.assgin(),与=号区别在于,=修改了a.name就会变化,而这个不会变,但是这个到下面一层也会变化!就是说等号只进行了一层深拷贝。
var a={name:'zxx',age:123456,arr:[1,2,3],ob:{new:'zxxx'}
}
var b=Object.assign({},a)
如果b原来是有属性的对象,并且同名的话,会被a的属性覆盖
var a={name:'zxx',age:123456,arr:[1,2,3],ob:{new:'zxxx'}
}
var b={name:'qqq',age:1234,
}
b=Object.assign(b,a)
3.扩展运算符
4.loadsh库
深拷贝
1.用json的方法(方法对于undefined和function不进行任何拷贝)
var a={name:'zxx',age:123456,arr:[1,2,3],ob:{new:'zxxx'}
}
var b=JSON.parse(JSON.stringify(a))
2.用for…in…+递归
var a={name:'zxx',age:123456,arr:[1,2,3],ob:{new:'zxxx'}
}
var b={}
function deepcopy(newobj,oldobj){for(var k in oldobj){var item=oldobj[k]if(item instanceof Array){newobj[k]=[];deepcopy(newobj[k],item)}else if(item instanceof Object){newobj[k]={};deepcopy(newobj[k],item)}else{newobj[k]=item;}};
}
deepcopy(b,a)
3.loadsh库
深拷贝和浅拷贝的几种方法相关推荐
- java拷贝函数_Java的深拷贝与浅拷贝的几种实现方式
1.介绍 关于Java的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象.可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传 ...
- 前端深拷贝与浅拷贝(附实现方法)
理解 都是对原本的对象进行一份复制,差异如下: 浅拷贝 创建一个新对象,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 .这个内存地址指向同一个堆内存,如果其中一个 ...
- java deep clone util_Java Clone深拷贝与浅拷贝的两种实现方法
1.首先,你要知道怎么实现克隆:实现Cloneable接口,在bean里面重写clone()方法,权限为public. 2.其次,你要大概知道什么是地址传递,什么是值传递. 3.最后,你要知道你为什么 ...
- PHP中对象的深拷贝与浅拷贝
2019独角兽企业重金招聘Python工程师标准>>> 最近写了一个php脚本,在脚本中使用到了SplPriorityQueue,会用到两次 因此写了如下: $res=$tmp_re ...
- JS的深拷贝和浅拷贝
今天,CVTE面试官问了深拷贝和浅拷贝的问题 我的回答是:浅拷贝是拷贝了对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化:深拷贝是另外申请了一块内存,内容和原对象一样,更改原对象,拷贝对象不会发 ...
- python list 深复制_Python中list的复制及深拷贝与浅拷贝探究
在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...
- Python中list的复制及深拷贝与浅拷贝探究
在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...
- Python基础教程:list深拷贝和浅拷贝
在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...
- js中的深拷贝和浅拷贝区别
js中的深拷贝和浅拷贝与值传递和引用传递有着些许的关联,都是根据堆栈中数据的储存来传递数据. 下面主要说一下我对深拷贝和浅拷贝的理解: 简单举个例子来说明:当我们声明一个a变量并且赋值,并且让b等于a ...
最新文章
- html li 右跟下有倒影,HTML5 canvas实现的下雨夜湖面星空倒影动画特效
- [云炬ThinkPython阅读笔记]第一章 程序之道
- JVM 调优实战--内存溢出的定位和MAT分析
- pandas读取excel,设置默认读取类型
- Busy Dialog init - hashchange will call BusyDialog.open - flower
- 微软说它深爱着Linux,现在它用行动证明了
- linux date命令设置时间
- 菜鸟学前端--javascript基础
- 【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换
- python数据分布_Python中的数据分布
- 详解Java中的正则表达式
- python函数代码块以什么开头_Python初体验-开篇 代码全析
- 监控PGA最大空间、分配
- 上海卓道医疗完成千万级Pre-A轮融资,幂方资本领投...
- Swift3.0P1 语法指南——枚举
- 《勒索软件经济分析》:“理想赎金”950英镑
- mod sim tcp配置_ModSim32和ModScan32两种Modbus调试工具使用说明
- python10的负n次方_python的次方
- 全国青少年编程等级考试python二级真题2020年9月(含题库答题软件账号)
- 阿里飞冰(Iceworks)入门和飞冰是干什么的
热门文章
- 使用HTML及简单的JavaScript脚本制作一个点名器
- java SSM项目基础(day 5)[实现用户添加功能(注册)]
- Elsevier系旗下期刊论文投稿流程
- linux如何卸载wps,Ubuntu菜鸟入门(三)—— 无用软件卸载,wps等常用软件安装...
- golang 将EBCDIC转成ASCII
- 关于计算机的英语作文带翻译100字,求30篇100字英语作文带翻译
- HTML 直播 RTMP流实时播放
- python从文件中删除某个字符,后保存该文件
- [ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片
- android 加固作用,Android 应用安全 - 应用加固概念