weakMap解决的问题

来源:18-17 WeakMap 和 WeakSet

巧巧被注册了

2024-03-19

const a = null;
const fn = () => {
	const obj = {
		// ...
	};
	a.info = obj;
};
fn();

上面的代码中由于变量a的属性info引用了对象obj,所以fn执行之后,obj没有被回收。

const wm = new WeakMap();
const fn = () => {
	const obj = {
		// ...
	};
	wm.set(obj, 'name info');
};
fn();

上面代码中obj会被正常回收,那vm中还有以obj为key的值吗?
WeakMap在什么时候用呢?
图片描述

上图中 userInfo被回收了,还能通过wm找到吗?

写回答

1回答

双越

2024-03-20

WeakMap 应用场景不太多,我建议你可以去看看 Vue3 的源码(响应式部分源码即可)里面有一些 WeakMap 的应用

0
0

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程