成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript 閉包系列(一)

Imfan / 384人閱讀

摘要:什么是閉包閉包與函數(shù)有著緊密的關(guān)系,以至于許多人將函數(shù)與閉包等同起來討論,但結(jié)果卻總是討論不清楚。由于引擎對(duì)每個(gè)函數(shù)建立其獨(dú)立的上下文環(huán)境,因此當(dāng)函數(shù)被再次執(zhí)行或進(jìn)入函數(shù)體內(nèi)的代碼時(shí),就將會(huì)得到閉包內(nèi)的全部信息。

什么是閉包????
閉包(Closure)與函數(shù)有著緊密的關(guān)系,以至于許多人將函數(shù)與閉包等同起來討論,但結(jié)果卻總是討論不清楚。

事實(shí)上在JavaScript 中,一個(gè)函數(shù)只是一段靜態(tài)的代碼、腳本文本,因此它是一個(gè)代碼書寫時(shí),以及編譯期的、靜態(tài)的概念;
而閉包則是函數(shù)的代碼在運(yùn)行過程中的一個(gè)動(dòng)態(tài)環(huán)境,是一個(gè)運(yùn)行期的、動(dòng)態(tài)的概念

由于引擎對(duì)每個(gè)函數(shù)建立其獨(dú)立的上下文環(huán)境,因此當(dāng)函數(shù)被再次執(zhí)行或進(jìn)入函數(shù)體內(nèi)的代碼時(shí),就將會(huì)得到閉包內(nèi)的全部信息。

閉包具有兩個(gè)特點(diǎn):
第一:是閉包作為與函數(shù)成對(duì)的數(shù)據(jù),在函數(shù)執(zhí)行過程中處于激活(即可訪問) 狀態(tài);
第二:是閉包在函數(shù)運(yùn)行結(jié)束后,保持運(yùn)行過程的最終數(shù)據(jù)狀態(tài)。

因此函數(shù)的閉包總的來說決定了兩件事:閉包所對(duì)應(yīng)的函數(shù)代碼如何訪問數(shù)據(jù),以及閉包內(nèi)的數(shù)據(jù)何時(shí)銷毀。對(duì)于前者來說,涉及作用域(可見性)的問題;對(duì)于后者來說,涉及數(shù)據(jù)引用的識(shí)別。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79500.html

相關(guān)文章

  • 分鐘學(xué)習(xí)JavaScript系列 -- 閉包

    摘要:此時(shí),中定義的局部變量就被保存在內(nèi)存中。所以當(dāng)執(zhí)行的時(shí)候,其真正的作用域是運(yùn)行時(shí)的作用域運(yùn)行時(shí)作用域詞法作用域所以第一次調(diào)用時(shí),由于是,所以返回而第二次返回是。因此在使用閉包時(shí),需要非常注意內(nèi)存泄漏的問題。 說起閉包,相信寫前端的同學(xué)都知道,而且相信在實(shí)際的項(xiàng)目中或多或少都已經(jīng)用到了閉包。那到底什么才是閉包,閉包又是怎么產(chǎn)生的呢? 1. 什么是閉包在阮老師的文章中提到: 閉包就是能夠讀...

    keke 評(píng)論0 收藏0
  • JavaScript中的閉包

    摘要:閉包引起的內(nèi)存泄漏總結(jié)從理論的角度將由于作用域鏈的特性中所有函數(shù)都是閉包但是從應(yīng)用的角度來說只有當(dāng)函數(shù)以返回值返回或者當(dāng)函數(shù)以參數(shù)形式使用或者當(dāng)函數(shù)中自由變量在函數(shù)外被引用時(shí)才能成為明確意義上的閉包。 文章同步到github js的閉包概念幾乎是任何面試官都會(huì)問的問題,最近把閉包這塊的概念梳理了一下,記錄成以下文章。 什么是閉包 我先列出一些官方及經(jīng)典書籍等書中給出的概念,這些概念雖然...

    HmyBmny 評(píng)論0 收藏0
  • JavaScript基礎(chǔ)系列---閉包及其應(yīng)用

    摘要:所以,有另一種說法認(rèn)為閉包是由函數(shù)和與其相關(guān)的引用環(huán)境組合而成的實(shí)體。所以本文中將以維基百科中的定義為準(zhǔn)即在計(jì)算機(jī)科學(xué)中,閉包,又稱詞法閉包或函數(shù)閉包,是引用了自由變量的函數(shù)。 閉包(closure)是JavaScript中一個(gè)神秘的概念,許多人都對(duì)它難以理解,我也一直處于似懂非懂的狀態(tài),前幾天深入了解了一下執(zhí)行環(huán)境以及作用域鏈,可戳查看詳情,而閉包與作用域及作用域鏈的關(guān)系密不可分,所...

    leoperfect 評(píng)論0 收藏0
  • 日了哈士奇系列JavaScript閉包

    摘要:閉包閉包,目前還沒有統(tǒng)一的定義。展開這個(gè)對(duì)象果然是世界上最好的瀏覽器,給我們展示了閉包中訪問的變量。模塊化的始祖據(jù)筆者所了解,模塊化就是借用閉包來實(shí)現(xiàn)的。所以我們?cè)陂_發(fā)過程用要慎用閉包。 標(biāo)題為什么叫日了哈士奇?因?yàn)殚]包這個(gè)東西已經(jīng)在我腦海里縈繞了很久,大概有多久呢?(掰手指頭和腳指頭ing....) 大概是筆者從事前端工作的第一個(gè)月開始吧......仍記得那個(gè)時(shí)候還請(qǐng)教了公司的大神,...

    AWang 評(píng)論0 收藏0
  • 溫故js系列(14)-閉包&垃圾回收&內(nèi)存泄露&閉包應(yīng)用&作用域鏈&

    摘要:該對(duì)象包含了函數(shù)的所有局部變量命名參數(shù)參數(shù)集合以及,然后此對(duì)象會(huì)被推入作用域鏈的前端。如果整個(gè)作用域鏈上都無法找到,則返回。此時(shí)的作用域鏈包含了兩個(gè)對(duì)象的活動(dòng)對(duì)象和對(duì)象。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:閉包 JavaScript-閉包 閉包(closure)是一個(gè)讓人又愛又恨的somet...

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

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

0條評(píng)論

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