请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于是否需要使用WeakMap的问题

老师,我在网上看到关于弱引用的描述:

强引用,即使将obj 设为null,但target仍然引用之前的内存,因此这部分内存依然无法被释放:

let obj = { name : 'ConardLi'};
const target = new Map();
target.set(obj,'code秘密花园');
obj = null;

弱引用,当下一次垃圾回收机制执行时,这块内存就会被释放掉

let obj = { name : 'ConardLi'};
const target = new WeakMap();
target.set(obj,'code秘密花园');
obj = null;

但是我感觉不到这里使用WeakMap的必要性,map定义在函数中,函数执行完毕后引用map的变量会被销毁,因此应该不会造成内存泄露的。

老师能举个必须使用WeakMap例子吗?        

正在回答 回答被采纳积分+3

1回答

双越 2022-05-19 08:49:33

wangEditor 源码中,各个对象之间的关系,就用了很多 WeakMap https://github.com/wangeditor-team/wangEditor/blob/master/packages/core/src/utils/weak-maps.ts

这样,各个对象销毁时,就不用担心彼此之间的影响。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号