2023-02-20

深拷贝浅拷贝

拷贝

拷贝的意思就是复制

基本类型是按照值来访问的

引用的类型都是按照引用来传递的

浅拷贝只是复制一层对象,

当对象的属性是引用类型时,实际就是复值的其引用,当引用指向的值范生发生变化的时候,源对象的属性值也会发生变化。互相影响。

Object.assign()

深拷贝:在拷贝的时候创建新的对象,并把源对象的所有的属性都深拷贝到新对象中,原属性要是也是对象的话,也会创建新的对象并拷贝到新的对象属性中,这样旧对象与新对象是相互独立的。互不影响

JSON.parse()+JSON.stringify()

var a={

b:1,

c:{

d:"88"

}}

var m=JSON.parse(JSON.stringify(a))

递归实现深拷贝


var m={};

if(type of=="obj"){

for(var k in obj){

if(obj.hasOwnProperty(k)){

if(type  obj[k]=="object"){

m[k]=fn(obj[k])



}

else{

m[k]=obj[k]

}

}



}

}

return m;

}

fn(obj)


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java 基础 语言特性 优点 ① 平台无关,摆脱硬件束缚,"一次编写,到处运行"。 ② 安全的内存管理和访问机制...
    续袁阅读 573评论 0 1
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,199评论 0 12
  • 01-延迟和异步加载JS 如何延迟加载JS:defer defer:js脚本可以延迟到文档完全被解析后执行 如何异...
    丽__阅读 314评论 0 5
  • ## iOS常用问题总结#### iOS基础知识回顾##### 1、为什么说Objective-C是一门动态的语言...
    蝉始鸣阅读 486评论 0 3
  • 1. load 与 initialize load:是当类或分类被添加到 Objective-C runtime ...
    杰克道长阅读 1,392评论 0 3