WeakMap和WeakSet使用弱引用,不阻止垃圾回收,适用于私有数据关联、对象缓存、标记已处理对象等场景,避免内存泄漏。

JavaScript 中的 WeakMap 和 WeakSet 是两种特殊的集合类型,它们持有的引用是“弱”的,这意味着它们不会阻止垃圾回收机制回收其中的对象。这个特性让它们在某些特定场景下非常有用。
示例:用 WeakMap 存储私有属性
const privateData = new WeakMap();
class Person {
constructor(name) {
privateData.set(this, { name });
}
getName() {
return privateData.get(this).name;
}
}
示例:用 WeakSet 避免重复处理对象
const processedNodes = new WeakSet();
function processNode(node) {
if (processedNodes.has(node)) {
return;
}
// 处理节点逻辑
processedNodes.add(node);
}
基本上就这些。WeakMap 和 WeakSet 不是用来替代 Map 和 Set 的,而是为了解决特定问题——在不干扰内存管理的前提下,关联或跟踪对象。合理使用它们,能有效提升应用的内存效率和稳定性。
立即学习“Java免费学习笔记(深入)”;
以上就是JavaScript 弱引用:WeakMap 与 WeakSet 的使用场景的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号