来看一看Map和WeakMap有什么不同之处

36 篇文章 1 订阅
本文探讨了Map的局限性,特别是其强引用带来的内存消耗问题,并重点介绍了WeakMap作为Map的升级版,通过弱引用特性避免循环引用,适用于深度拷贝场景。讲解了强/弱引用的区别,以及WeakMap如何在实现完美深拷贝中发挥作用。
摘要由CSDN通过智能技术生成

WeakMap和Map的升级版

知识点1:Map是为了解决对象中的key只能为字符串的缺陷,

//基本的对象
const obj = {
	'name': '张飞',,
	'age': 18
}
// Map
let m = new Map()
a.set(obj,1)
// 我们的Map是可以解决对象的key不能为对象的缺陷
// 但是又随之而来了一个缺点,耗费内存,强引用

什么是强/弱引用?

就是创建引用之后,无法被垃圾资源回收机制进行回收的,就是强引用.强到你设置了null,也分不开

const refence = [
	[obj: 1]
]

现在我们把obj赋值为null,但是我们的[obj:1]是一个数组,也是一个引用的类型,
把obj赋值为了空,但是refence和数组之前还是存在引用的关系.所以无法分开

我们的WeakMap和Map的区别?
1强/弱引用的区别,Map强,WeakMap弱
2WeakMap只接受对象为key值

在实现完美的深拷贝中,我们使用Weak代替Map的使用来解决循环引用的问题,进行优化

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值