js深浅拷贝

参考原文地址:https://www.cnblogs.com/136asdxxl/p/8645750.html
js数据类型分为基础数据类型和引用数据类型
1. 基础数据类型: undefined、null、string、number、boolean、symbol(es6)
b. 引用数据类型:Object(例如:Object、Array、function、data等)
基础数据类型保存在 栈内存 ,引用数据类型保存在 堆内存 ,原因在于栈内存必须是大小固定的数据,引用数据类型的大小不固定,只能保存在堆内存中,但可以将引用数据类型的地址写在栈内存中供访问
基础数据类型可以直接访问到值,操作的也是具体的值,引用数据类型只能通过保存在栈内存中的地址来操作实际的值

浅拷贝
  1. 浅拷贝只是拷贝基础数据类型,如果原数据为数组或对象,那么实际上拷贝的只是栈内存中的对象地址,如果原数据修改则会影响复制后的数据
    浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存
深拷贝
  1. 深拷贝能够实现真正意义上的对象和数组的拷贝,深拷贝会创建一个一摸一样的对象,并且不与原对象共享内存

对象的深拷贝


数组的深拷贝(concat() 和slice())


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值