30-浅拷贝和深拷贝


文档摘要

title: 30-浅拷贝和深拷贝 概念 浅拷贝:只拷贝最外面一层的数据;更深层次的对象,只拷贝引用。 深拷贝:拷贝多层数据;每一层级别的数据都会拷贝。 总结: 拷贝引用的时候,是属于传址,而非传值。关于传值和传址的区别,是很基础的内容,详见《JavaScript 基础/对象简介.md》这篇文章。 深拷贝会把对象里所有的数据重新复制到新的内存空间,是最彻底的拷贝。 浅拷贝的实现方式 用 for in 实现浅拷贝(比较繁琐) 上方代码中,用 for in 做拷贝时,只能做到浅拷贝。也就是说,在 obj2 中, name 和 age 这两个属性会单独存放在新的内存地址中,和 obj1 没有关系。但是, 属性,跟 属性,它俩指向的是同一个堆内存地址。所以,当我修改 里的值之后, 的值也会被修改。


发布者: 作者: 转发
评论区 (0)
U