国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于閉包的個(gè)人理解

cheng10 / 1673人閱讀

摘要:網(wǎng)上關(guān)于閉包的解釋有很多,大多都過(guò)于概念化,定義很精準(zhǔn)也很難看懂在說(shuō)什么。。首先貼一道經(jīng)典的閉包題理解閉包之前,我們要明確垃圾回收機(jī)制中關(guān)于引用次數(shù)的判斷,即當(dāng)引用對(duì)象的引用計(jì)數(shù)為的時(shí)候,表明此對(duì)象值可回收。

網(wǎng)上關(guān)于閉包的解釋有很多,大多都過(guò)于概念化,定義很精準(zhǔn)也很難看懂在說(shuō)什么。。
首先貼一道經(jīng)典的閉包題:
`

function a(){
var b=0
return function(){
  console.log(b++)
  }
}
var c=a()
var d=a()
c() //0
c() //1
d() //0

`

理解閉包之前,我們要明確js垃圾回收機(jī)制中關(guān)于引用次數(shù)的判斷,即當(dāng)引用對(duì)象的引用計(jì)數(shù)為0的時(shí)候,表明此對(duì)象值可回收。一個(gè)參數(shù)的作用域,即其是否能被調(diào)用,在于其調(diào)用時(shí)是否被回收,被回收了自然不能被調(diào)用。
以上代碼,當(dāng)執(zhí)行var c=a()時(shí),可以理解為方法a開(kāi)辟了一個(gè)新的內(nèi)存空間area1,area1中定義的變量b,由于返回的function中引用了變量area1.b(為了方便理解,以此表示area1空間中的b變量),因此area1.b的引用次數(shù)為1,即垃圾回收機(jī)制不會(huì)對(duì)area1.b進(jìn)行回收,后續(xù)執(zhí)行c()時(shí)依然可以調(diào)用area1.b
同理,var d=a(),此時(shí)開(kāi)辟新的內(nèi)存空間area2,并在其中定義變量b。
因此上述代碼可以理解為:
`

function a(){
var b=0
return function(){
  console.log(b++)
  }
}
var c=a()
var d=a()
c() //執(zhí)行console.log(area1.b++),輸出0
c() //執(zhí)行console.log(area1.b++),輸出1
d() //執(zhí)行console.log(area2.b++),輸出0

`

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/102353.html

相關(guān)文章

  • 還擔(dān)心面試官問(wèn)閉包

    摘要:一言以蔽之,閉包,你就得掌握。當(dāng)函數(shù)記住并訪問(wèn)所在的詞法作用域,閉包就產(chǎn)生了。所以閉包才會(huì)得以實(shí)現(xiàn)。從技術(shù)上講,這就是閉包。執(zhí)行后,他的內(nèi)部作用域并不會(huì)消失,函數(shù)依然保持有作用域的閉包。 網(wǎng)上總結(jié)閉包的文章已經(jīng)爛大街了,不敢說(shuō)筆者這篇文章多么多么xxx,只是個(gè)人理解總結(jié)。各位看官瞅瞅就好,大神還希望多多指正。此篇文章總結(jié)與《JavaScript忍者秘籍》 《你不知道的JavaScri...

    tinyq 評(píng)論0 收藏0
  • 關(guān)于個(gè)人第一天前端面試面試問(wèn)答QA,希望能對(duì)其他找前端工作朋友有所幫助。

    摘要:兩日前,發(fā)了一篇吐槽,莫名的火了一把。關(guān)于的第一個(gè),其實(shí)就是聲明一個(gè)常量,不允許變更。另外對(duì)象迭代這里出自,阮一峰大神寫(xiě)的入門(mén)指南,對(duì)象篇。 兩日前,發(fā)了一篇吐槽,莫名的火了一把。經(jīng)過(guò)大家的建議與鼓勵(lì),于是修改了簡(jiǎn)歷,開(kāi)始了重新投遞,2天后接到第一份面試邀請(qǐng)。 此文為個(gè)人面試經(jīng)歷,QA問(wèn)答過(guò)程與總結(jié),不透露面試公司及面試人員,內(nèi)容真實(shí),如果有面試過(guò)我的大佬看到博客,歡迎指出問(wèn)題。 循序...

    Youngdze 評(píng)論0 收藏0
  • 關(guān)于javascript中閉包

    摘要:在上面的執(zhí)行中,只是又返回了一個(gè)新的對(duì)象,但是并沒(méi)有執(zhí)行新對(duì)象里面的屬性對(duì)應(yīng)的匿名函數(shù)喔,那就是沒(méi)有改變的值啊,所以你繼續(xù)也會(huì)輸出同樣的結(jié)果啊。 關(guān)于javascript中的閉包 我GitHub上的菜鳥(niǎo)倉(cāng)庫(kù)地址: 點(diǎn)擊跳轉(zhuǎn)查看其他相關(guān)文章 文章在我的博客上的地址: 點(diǎn)擊跳轉(zhuǎn) ? ? ? ? 其實(shí)關(guān)于閉包的定義,很多種說(shuō)法,而關(guān)于閉包的解釋,更是多不勝數(shù)了。很多說(shuō)得非常復(fù)雜,也有很多...

    myeveryheart 評(píng)論0 收藏0
  • 淺談對(duì)JavaScript閉包理解

    摘要:關(guān)于循環(huán)和閉包當(dāng)循環(huán)和閉包結(jié)合在一起時(shí),經(jīng)常會(huì)產(chǎn)生讓初學(xué)者覺(jué)得匪夷所思的問(wèn)題。閉包是一把雙刃劍是比較難以理解和掌握的部分,它十分強(qiáng)大,卻也有很大的缺陷,如何使用它完全取決于你自己。 在談閉包之前,我們首先要了解幾個(gè)概念: 什么是函數(shù)表達(dá)式? 與函數(shù)聲明有何不同? JavaScript查找標(biāo)識(shí)符的機(jī)制 JavaScript的作用域是詞法作用域 JavaScript的垃圾回收機(jī)制 先來(lái)...

    missonce 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<