当前位置:网站首页>什么是弱引用?es6中有哪些弱引用数据类型?js中的弱引用是什么?
什么是弱引用?es6中有哪些弱引用数据类型?js中的弱引用是什么?
2022-07-06 01:13:00 【imkaifan】
弱引用:
WeakSet 中的对象都是弱引用,垃圾回收机制不考虑 WeakSet 对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于 WeakSet 之中。
这是因为垃圾回收机制根据对象的可达性(reachability)来判断回收,如果对象还能被访问到,垃圾回收机制就不会释放这块内存。结束使用该值之后,有时会忘记取消引用,导致内存无法释放,进而可能会引发内存泄漏。WeakSet 里面的引用,都不计入垃圾回收机制,所以就不存在这个问题。因此,WeakSet 适合临时存放一组对象,以及存放跟对象绑定的信息。只要这些对象在外部消失,它在 WeakSet 里面的引用就会自动消失。
由于上面这个特点,WeakSet 的成员是不适合引用的,因为它会随时消失。另外,由于 WeakSet 内部有多少个成员,取决于垃圾回收机制有没有运行,运行前后很可能成员个数是不一样的,而垃圾回收机制何时运行是不可预测的,因此 ES6 规定 WeakSet 不可遍历。而且自然也就没有size属性,因为有多少数据量也是不确定的。
这些特点同样适用于 WeakMap 结构
边栏推荐
- Recommended areas - ways to explore users' future interests
- ORA-00030
- Four commonly used techniques for anti aliasing
- WGet: command line download tool
- False breakthroughs in the trend of London Silver
- Zhuhai's waste gas treatment scheme was exposed
- The basic usage of JMeter BeanShell. The following syntax can only be used in BeanShell
- 黄金价格走势k线图如何看?
- [groovy] XML serialization (use markupbuilder to generate XML data | set XML tag content | set XML tag attributes)
- WordPress collection plug-in automatically collects fake original free plug-ins
猜你喜欢
282. Stone consolidation (interval DP)
2020.2.13
False breakthroughs in the trend of London Silver
vSphere实现虚拟机迁移
BiShe - College Student Association Management System Based on SSM
Vulhub vulnerability recurrence 75_ XStream
[groovy] compile time meta programming (compile time method interception | method interception in myasttransformation visit method)
Introduction to robotics I. spatial transformation (1) posture, transformation
The growth path of test / development programmers, the problem of thinking about the overall situation
ubantu 查看cudnn和cuda的版本
随机推荐
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
JMeter BeanShell的基本用法 一下语法只能在beanshell中使用
Gartner发布2022-2023年八大网络安全趋势预测,零信任是起点,法规覆盖更广
Overview of Zhuhai purification laboratory construction details
ADS-NPU芯片架构设计的五大挑战
Cf:h. maximum and [bit operation practice + K operations + maximum and]
MYSQL---查询成绩为前5名的学生
几百行代码实现一个 JSON 解析器
Obstacle detection
FFT learning notes (I think it is detailed)
Distributed base theory
可恢复保险丝特性测试
MCU realizes OTA online upgrade process through UART
View class diagram in idea
IP storage and query in MySQL
Novice entry depth learning | 3-6: optimizer optimizers
Questions about database: (5) query the barcode, location and reader number of each book in the inventory table
[groovy] JSON serialization (jsonbuilder builder | generates JSON string with root node name | generates JSON string without root node name)
A preliminary study of geojson
The basic usage of JMeter BeanShell. The following syntax can only be used in BeanShell