weakMap为什么是弱引用原理

 更新时间:2023年02月10日 10:13:07   作者:追旅  
这篇文章主要为大家介绍了weakMap为什么是弱引用原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

聊一下WeakMap弱引用,看了很多文章发现说的不对,给出的demo经过尝试也是错误的,哎,难搞也要搞

弱引用 vs 强引用

对象被强引用则不会被垃圾回收机制回收,这没啥说的。那到底啥事弱引用呢?

垃圾回收机制最常用的方法就是引用计数,只要有引用堆内存的地方,引用计数就要加1。如果一个值的引用次数是0,就表示这个值不再用到了,因此可以将这块内存释放

弱引用则可以理解为引用计数不会+1,看一下实际表现

Map vs WeakMap

var m = new WeakMap()
function Foo() {
  this.arr = new Array(5 * 1024 * 1024)
}
var f = new Foo()
m.set(f, 'data')
f = null

网上有人说m.get('f')得到的是undefined所以是弱引用,但其实你使用Map得到的也是undefined,这种说法还非常的多,不能说他说的不对吧,简直就是胡说。

回归正传,看一下为啥说WeakMap是弱引用。打开F12,选择内存(memory),点击小圆点获取快照,然后搜索Foo,发现并没有表示其已经被回收

而后将WeakMap改为Map重新获取快照,发现Foo没有被回收

这个方式可以很直观的表明WeakMap的弱引用

以上就是weakMap为什么是弱引用原理的详细内容,更多关于weakMap为什么是弱引用的资料请关注脚本之家其它相关文章!

相关文章

  • 一文详解JavaScript如何安全的进行数据获取

    一文详解JavaScript如何安全的进行数据获取

    这篇文章主要为大家介绍了JavaScript如何安全的进行数据获取方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • tween.js缓动补间动画算法示例

    tween.js缓动补间动画算法示例

    本篇文章主要介绍了tween.js缓动补间动画示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • JavaScript学习笔记之创建对象

    JavaScript学习笔记之创建对象

    在JavaScript中对象是一种基本的数据类型,在数据结构上是一种散列表,可以看作是属性的无序集合,除了原始值其他一切都是对象。这篇文章主要给大家介绍JavaScript学习笔记之创建对象,需要的朋友参考下吧
    2016-03-03
  • JavaScript使用arcgis实现截图截屏功能

    JavaScript使用arcgis实现截图截屏功能

    这篇文章主要为大家详细介绍了JavaScript如何使用arcgis实现截图截屏功能,类似于qq截图,文中的示例代码讲解详细,需要的可以参考一下
    2024-01-01
  • 微信小程序实现tab点击切换

    微信小程序实现tab点击切换

    这篇文章主要为大家详细介绍了微信小程序实现tab点击切换,不滑动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JS随即打乱数组实现代码

    JS随即打乱数组实现代码

    使用javascript过程中,偶尔会用到数值,而且是打乱后的数值,本文将介绍一种高效打乱数组的方法,需要的朋友可以参考下
    2012-12-12
  • JavaScript实现微信小程序打卡时钟项目实例

    JavaScript实现微信小程序打卡时钟项目实例

    这篇文章主要为大家介绍了JavaScript实现微信小程序打卡时钟项目实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • js获取视频时长代码

    js获取视频时长代码

    下面的这段js获取视频时长代码是网上找的,还没有测试,需要的朋友可以参考下
    2014-04-04
  • 解析javascript瀑布流原理实现图片滚动加载

    解析javascript瀑布流原理实现图片滚动加载

    这篇文章主要帮助大家解析javascript瀑布流原理,实现js图片滚动加载
    2016-03-03
  • Javascript中classList的基本使用方法

    Javascript中classList的基本使用方法

    classList 是一个非常实用的工具,可以让我们轻松地操作元素的类名,在使用 classList 时,我们可以通过 add、remove、toggle 和 contains 等方法来添加、删除、切换和检查类名,接下来我们详细学习一下classList的使用方法以及相关方法,感兴趣的朋友一起看看吧
    2023-10-10

最新评论