当前位置: 首页 > news >正文

什么是 JavaScript 中的 WeakMap

在 JavaScript 中,WeakMap 是一种特殊的 Map 数据结构,它允许将对象作为键,而且键值对是弱引用的关系。

与 Map 不同的是,WeakMap 的键只能是对象,不能是其他类型的值。同时,当键对象没有任何引用时,它们会被垃圾回收机制自动清除,这意味着 WeakMap 并不会导致内存泄漏。

弱引用的特性使得 WeakMap 在某些情况下非常有用,比如在需要将一些额外的数据与一个对象关联起来但又不希望影响到垃圾回收的场景下。常见的应用场景包括缓存、存储私有数据等。

WeakMap 的主要方法和属性与 Map 一致,包括 set、get、has、delete 等方法,但没有 size 属性。

以下是一个使用 WeakMap 的示例:

const wm = new WeakMap();let obj1 = {name: 'John'};
let obj2 = {name: 'Jane'};wm.set(obj1, 10);
wm.set(obj2, 20);console.log(wm.get(obj1)); // 输出 10
console.log(wm.get(obj2)); // 输出 20obj1 = null;console.log(wm.get(obj1)); // 输出 undefined,obj1 已被垃圾回收

需要注意的是,由于 WeakMap 的键只能是对象,因此不能使用原始类型的值作为键,比如字符串、数字等。如果需要使用字符串或数字作为键,应该使用普通的 Map 数据结构。

http://www.lryc.cn/news/269934.html

相关文章:

  • nodejs+vue+ElementUi农产品团购销售系统zto2c
  • nacos入门篇001-安装与启动
  • WordPress主题大前端DUX v8.3源码下载
  • RabbitMQ之快速入门、上手
  • GBASE南大通用-GBase 8s数据库日志模式及切换
  • 侵入式和非侵入式微服务框架的比较
  • Go语言程序设计-第5章--函数
  • 数据被锁?被.mkp 勒索病毒攻击后的拯救行动
  • Fine-Tuning Language Models from Human Preferences
  • 提升数据库性能的关键指南-Oracle AWR报告
  • 云计算IaaS、PaaS和SaaS之
  • 解锁大数据世界的钥匙——Hadoop HDFS安装与使用指南
  • 写在2023岁末:敏锐地审视量子计算的当下
  • C/C++学习笔记十三 C++中的重载运算符
  • Java 实现自动获取法定节假日
  • 湘潭大学-2023年下学期-c语言-作业0x0a-综合1
  • 网络协议-BIO实战和NIO编程
  • Word 将页面方向更改为横向或纵向
  • 关键字:abstract关键字
  • 从PDF中提取图片
  • 推荐:一个不错的介绍Apache Doris的PPT
  • 【Python_PySide2学习笔记(二十二)】进度对话框QProgressDialog类的基本用法
  • 使用rust读取usb设备ACR122U的nfc卡片id
  • servlet总结
  • Nacos2.1.2改造适配达梦数据库7.0
  • TPRI-DMP平台介绍
  • oracle-存储结构
  • 获取PG库 database与 user 创建时间以及cluster初始化时间
  • 【12.29】转行小白历险记-刷算法05
  • docker部署kafka zookeeper模式集群