浅拷贝

  1. 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库

深拷贝和浅拷贝的几种方法相关推荐

  1. java拷贝函数_Java的深拷贝与浅拷贝的几种实现方式

    1.介绍 关于Java的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象.可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传 ...

  2. 前端深拷贝与浅拷贝(附实现方法)

    理解 都是对原本的对象进行一份复制,差异如下: 浅拷贝 创建一个新对象,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 .这个内存地址指向同一个堆内存,如果其中一个 ...

  3. java deep clone util_Java Clone深拷贝与浅拷贝的两种实现方法

    1.首先,你要知道怎么实现克隆:实现Cloneable接口,在bean里面重写clone()方法,权限为public. 2.其次,你要大概知道什么是地址传递,什么是值传递. 3.最后,你要知道你为什么 ...

  4. PHP中对象的深拷贝与浅拷贝

    2019独角兽企业重金招聘Python工程师标准>>> 最近写了一个php脚本,在脚本中使用到了SplPriorityQueue,会用到两次 因此写了如下: $res=$tmp_re ...

  5. JS的深拷贝和浅拷贝

    今天,CVTE面试官问了深拷贝和浅拷贝的问题 我的回答是:浅拷贝是拷贝了对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化:深拷贝是另外申请了一块内存,内容和原对象一样,更改原对象,拷贝对象不会发 ...

  6. python list 深复制_Python中list的复制及深拷贝与浅拷贝探究

    在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...

  7. Python中list的复制及深拷贝与浅拷贝探究

    在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...

  8. Python基础教程:list深拷贝和浅拷贝

    在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出的list之后,修改其中的任意一个是否会对另一个造成影响,即这 ...

  9. js中的深拷贝和浅拷贝区别

    js中的深拷贝和浅拷贝与值传递和引用传递有着些许的关联,都是根据堆栈中数据的储存来传递数据. 下面主要说一下我对深拷贝和浅拷贝的理解: 简单举个例子来说明:当我们声明一个a变量并且赋值,并且让b等于a ...

最新文章

  1. html li 右跟下有倒影,HTML5 canvas实现的下雨夜湖面星空倒影动画特效
  2. [云炬ThinkPython阅读笔记]第一章 程序之道
  3. JVM 调优实战--内存溢出的定位和MAT分析
  4. pandas读取excel,设置默认读取类型
  5. Busy Dialog init - hashchange will call BusyDialog.open - flower
  6. 微软说它深爱着Linux,现在它用行动证明了
  7. linux date命令设置时间
  8. 菜鸟学前端--javascript基础
  9. 【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换
  10. python数据分布_Python中的数据分布
  11. 详解Java中的正则表达式
  12. python函数代码块以什么开头_Python初体验-开篇 代码全析
  13. 监控PGA最大空间、分配
  14. 上海卓道医疗完成千万级Pre-A轮融资,幂方资本领投...
  15. Swift3.0P1 语法指南——枚举
  16. 《勒索软件经济分析》:“理想赎金”950英镑
  17. mod sim tcp配置_ModSim32和ModScan32两种Modbus调试工具使用说明
  18. python10的负n次方_python的次方
  19. 全国青少年编程等级考试python二级真题2020年9月(含题库答题软件账号)
  20. 阿里飞冰(Iceworks)入门和飞冰是干什么的

热门文章

  1. 使用HTML及简单的JavaScript脚本制作一个点名器
  2. java SSM项目基础(day 5)[实现用户添加功能(注册)]
  3. Elsevier系旗下期刊论文投稿流程
  4. linux如何卸载wps,Ubuntu菜鸟入门(三)—— 无用软件卸载,wps等常用软件安装...
  5. golang 将EBCDIC转成ASCII
  6. 关于计算机的英语作文带翻译100字,求30篇100字英语作文带翻译
  7. HTML 直播 RTMP流实时播放
  8. python从文件中删除某个字符,后保存该文件
  9. [ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片
  10. android 加固作用,Android 应用安全 - 应用加固概念