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的使用来解决循环引用的问题,进行优化