欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

weakMap為什么是弱引用原理

 更新時(shí)間:2023年02月10日 10:13:07   作者:追旅  
這篇文章主要為大家介紹了weakMap為什么是弱引用原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

聊一下WeakMap弱引用,看了很多文章發(fā)現(xiàn)說(shuō)的不對(duì),給出的demo經(jīng)過(guò)嘗試也是錯(cuò)誤的,哎,難搞也要搞

弱引用 vs 強(qiáng)引用

對(duì)象被強(qiáng)引用則不會(huì)被垃圾回收機(jī)制回收,這沒(méi)啥說(shuō)的。那到底啥事弱引用呢?

垃圾回收機(jī)制最常用的方法就是引用計(jì)數(shù),只要有引用堆內(nèi)存的地方,引用計(jì)數(shù)就要加1。如果一個(gè)值的引用次數(shù)是0,就表示這個(gè)值不再用到了,因此可以將這塊內(nèi)存釋放

弱引用則可以理解為引用計(jì)數(shù)不會(huì)+1,看一下實(shí)際表現(xiàn)

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

網(wǎng)上有人說(shuō)m.get('f')得到的是undefined所以是弱引用,但其實(shí)你使用Map得到的也是undefined,這種說(shuō)法還非常的多,不能說(shuō)他說(shuō)的不對(duì)吧,簡(jiǎn)直就是胡說(shuō)。

回歸正傳,看一下為啥說(shuō)WeakMap是弱引用。打開(kāi)F12,選擇內(nèi)存(memory),點(diǎn)擊小圓點(diǎn)獲取快照,然后搜索Foo,發(fā)現(xiàn)并沒(méi)有表示其已經(jīng)被回收

而后將WeakMap改為Map重新獲取快照,發(fā)現(xiàn)Foo沒(méi)有被回收

這個(gè)方式可以很直觀的表明WeakMap的弱引用

以上就是weakMap為什么是弱引用原理的詳細(xì)內(nèi)容,更多關(guān)于weakMap為什么是弱引用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • js delete 用法(刪除對(duì)象屬性及變量)

    js delete 用法(刪除對(duì)象屬性及變量)

    js delete可以刪除對(duì)象屬性及變量,下面是一些示例,感興趣的朋友可以看看
    2014-08-08
  • JS仿JQuery選擇器功能

    JS仿JQuery選擇器功能

    本文主要介紹了JS仿JQuery選擇器功能的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • JavaScript作用域與作用域鏈?zhǔn)褂弥攸c(diǎn)講解

    JavaScript作用域與作用域鏈?zhǔn)褂弥攸c(diǎn)講解

    當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對(duì)象的一個(gè)作用域鏈,作用域鏈的用途是保證對(duì)執(zhí)行環(huán)境有權(quán)訪問(wèn)的所有變量和函數(shù)的有序訪問(wèn),下面這篇文章主要給大家介紹了關(guān)于JavaScript作用域與作用域鏈的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Javascript下拉刷新的簡(jiǎn)單實(shí)現(xiàn)

    Javascript下拉刷新的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Javascript下拉刷新的簡(jiǎn)單實(shí)現(xiàn)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • javascript用戶注冊(cè)提示效果的簡(jiǎn)單實(shí)例

    javascript用戶注冊(cè)提示效果的簡(jiǎn)單實(shí)例

    這個(gè)可以增加用戶驗(yàn)證,不用js alert來(lái)作提示,而是在右邊提示,現(xiàn)在很多網(wǎng)站都這樣做,有需要的朋友可以參考一下
    2013-08-08
  • 小程序兩種滾動(dòng)公告欄的實(shí)現(xiàn)方法

    小程序兩種滾動(dòng)公告欄的實(shí)現(xiàn)方法

    這篇文章主要介紹了小程序兩種滾動(dòng)公告欄的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • jsonp跨域獲取數(shù)據(jù)的基礎(chǔ)教程

    jsonp跨域獲取數(shù)據(jù)的基礎(chǔ)教程

    這篇文章主要給大家介紹了關(guān)于jsonp跨域獲取數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • ES6入門(mén)教程之變量的解構(gòu)賦值詳解

    ES6入門(mén)教程之變量的解構(gòu)賦值詳解

    這篇文章主要給大家介紹了關(guān)于ES6入門(mén)教程之變量的解構(gòu)賦值的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ES6具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 利用js canvas實(shí)現(xiàn)五子棋游戲

    利用js canvas實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了利用js canvas實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Javascript實(shí)現(xiàn)漢字和拼音互轉(zhuǎn)的終極方案

    Javascript實(shí)現(xiàn)漢字和拼音互轉(zhuǎn)的終極方案

    網(wǎng)上關(guān)于JS實(shí)現(xiàn)漢字和拼音互轉(zhuǎn)的文章很多,但是比較雜亂,有的不支持多音字、不支持聲調(diào)或者字典文件太大,無(wú)法根據(jù)實(shí)際需要滿足需求。這篇文章給大家修正整理網(wǎng)上的幾種常見(jiàn)方法,文章結(jié)尾還附簡(jiǎn)單的JS拼音輸入法,本文對(duì)大家具有一定的參考借鑒價(jià)值,下面一起看看吧。
    2016-10-10

最新評(píng)論