js文章--WeakMap

WeakMap

一般来说js引擎垃圾回收机制,有两种:

1.引用数机制,一个变量被引用,则引用数不为0,当变量引用数为0时,js垃圾回收机制才会去释放掉该变量的内存空间

2.标签机制,如果一个变量在被使用后无再次利用,js引擎垃圾回收就会对该变量打tag,对有打tag的变量进行收回,释放资源

在实际开发中,可能比较大的项目才会认真去考虑垃圾收回的问题,而在开发中,仅仅将一个变量设置为空有时候并不能有效的释放内存地址。

这时候可以用WeakMap!

WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,不是对象则会报错,而值可以是任意的。

使用场景

var div = document.getElementById('div');
var storeMap = new WeakMap();
storeMap.set(div);
//移除节点
div.remove();
//设置为null,此时因为设置了WeakMap,内存被释放
div = null;

通过WeakMap的set()方法,设置变量,一旦设置为null,就会相应的去释放资源。

WeakMap的接口与Map相同,但与Map相比,WeakMap的键是不可枚举的,因此其可以用来保存一些私有属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值