<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • javascript閉包的定義及應(yīng)用實(shí)例分析

    時(shí)間:2024-08-25 16:39:02 JavaScript 我要投稿
    • 相關(guān)推薦

    javascript閉包的定義及應(yīng)用實(shí)例分析

      官方解釋

      “閉包”是一個(gè)擁有許多變量和綁定了這些變量的環(huán)境表達(dá)式(通常是一個(gè)函數(shù)),因而這些變量也是環(huán)境表達(dá)式的一部分。

      通俗解釋

      Javascript中所有的函數(shù)都是一個(gè)閉包。不過(guò)一般來(lái)說(shuō),嵌套的function產(chǎn)生的閉包更為強(qiáng)大,也是大部分時(shí)候我們所說(shuō)的“閉包”?慈缦麓a:

      復(fù)制代碼 代碼如下:

      這段腳本在執(zhí)行完var c=a()之后,變量c實(shí)際上就指向了函數(shù)b,b中用到了變量i,再執(zhí)行c()后就會(huì)彈出一個(gè)窗口顯示i的值。這段代碼其實(shí)就是一個(gè)閉包,為什么?因?yàn)楹瘮?shù)a外的變量c引用了函數(shù)a內(nèi)部的函數(shù)b。

      Javascript的垃圾回收機(jī)制

      由于javascript特殊的垃圾回收機(jī)制,才導(dǎo)致了閉包的產(chǎn)生。Javascript垃圾回收機(jī)制的大體規(guī)則如下:

      在javascript中,如果一個(gè)對(duì)象不再被引用,那么這個(gè)對(duì)象就會(huì)被GC回收。如果兩個(gè)對(duì)象相互引用,而不再被第3者引用,那么這兩個(gè)互相引用的對(duì)象也會(huì)被回收。而在上述的腳本中,函數(shù)a被b引用,函數(shù)b又被函數(shù)a外的c所引用,這就是為什么函數(shù)a執(zhí)行后不被回收的原因。

      閉包的應(yīng)用場(chǎng)景

      1. 保護(hù)函數(shù)內(nèi)的變量安全。以上面的例子為例,函數(shù)a中變量i只有函數(shù)b才能訪問(wèn),而無(wú)法通過(guò)其他途徑訪問(wèn)到,因此保護(hù)了i的安全性。

      2. 在內(nèi)存中維持一個(gè)變量。依然如上面的例子,由于閉包,函數(shù)a中的i一直存在于內(nèi)存中,因此每次執(zhí)行c(),i都會(huì)加1。

      3. 通過(guò)保護(hù)變量的安全實(shí)現(xiàn)JS私有屬性和私有方法(不能被外部訪問(wèn))。如下,私有屬性和私有方法在Constructor外是無(wú)法訪問(wèn)的:

      復(fù)制代碼 代碼如下:

      function Constructor(…){

      var that = this;

      var membername = value;

      function membername(…){…}

      }

    【javascript閉包的定義及應(yīng)用實(shí)例分析】相關(guān)文章:

    Javascript 閉包引起IE內(nèi)存泄露分析04-01

    javascript的閉包概念怎么理解03-29

    Javascript函數(shù)的定義和用法分析03-31

    JavaScript fontcolor方法入門實(shí)例03-29

    JavaScript中push(),join() 函數(shù)實(shí)例詳解03-31

    抽象語(yǔ)法樹在JavaScript中的應(yīng)用03-25

    javascript分析運(yùn)算符用法04-01

    JavaScript類定義原型方法的兩種實(shí)現(xiàn)的區(qū)別04-02

    德國(guó)留學(xué)申請(qǐng)實(shí)例分析03-19

    主站蜘蛛池模板: 国产精品电影在线| 精品一区二区三区色花堂| 国产99久久久国产精品~~牛| 亚洲欧美激情精品一区二区| jizz国产精品| 国产a视频精品免费观看| 婷婷精品国产亚洲AV麻豆不片| 国产精品爽爽ⅴa在线观看| segui久久国产精品| 漂亮人妻被黑人久久精品| 无码精品A∨在线观看| 国产精品第六页| 亚洲永久永久永久永久永久精品| 99久久精品日本一区二区免费| 亚洲国产精品无码一线岛国| 麻豆精品视频在线观看| 国产精品青草视频免费播放| 日本精品卡一卡2卡3卡四卡| 精品国产黑色丝袜高跟鞋| 久久精品国产亚洲沈樵| 国产精品免费无遮挡无码永久视频| 在线中文字幕精品第5页| 欧美成人精品高清在线播放| 精品人妻伦一二三区久久| 国产精品自在欧美一区| 国产乱码伦精品一区二区三区麻豆| 欧美+亚洲+精品+三区| 国产成人亚洲精品| aaa级精品久久久国产片| 国产日韩一区在线精品欧美玲| 99re热视频这里只精品| 97精品国产手机| 国产91大片精品一区在线观看| 91麻豆精品国产自产在线观看一区 | 亚洲精品乱码久久久久久久久久久久 | 2021年精品国产福利在线 | 精品亚洲综合在线第一区| 2020国产精品永久在线| 国产成人精品日本亚洲网址| 亚洲精品人成在线观看| 成人国产精品日本在线观看|