92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

閉包--沒有那么復雜!

2021-4-20    前端達人

一弄JS,就總有人在提閉包、閉包的,此前不了解,上網上搜,很多講的也過于難懂,感覺沒有必要那么復雜,今天就把我對于閉包的理解總結一下,力求簡單、通俗、易懂



目錄



1.什么是閉包



2.閉包有什么用?



3.閉包帶來了什么問題呢?



4.總結



 1.什么是閉包

通俗的理解就是:子函數使用著父函數作用域內的變量,導致父函數作用域內的變量無法回收釋放的這種情況。



<script>

function a(){

   let num=0;

   return ()=>{

     console.log(num++);

   }

};

let t=a();

//執行三次結果是多少?

t();

t();

t();

</script>

 看上面的代碼,分別執行三次t(),那么結果是多少呢?







結果是0,1,2,這是怎么回事呢?原因就是閉包導致的。



我們首先分析:a函數內有一個num變量和一個子函數,在子函數中使用著父函數a的變量num,使其自加1。隨后將a函數執行后復制給t,由于子函數一直在使用num變量(其實不論子函數是否使用,父函數的變量都不會釋放,隨時等待子函數調用除非子函數引用被釋放),所以num變量并不會回收釋放。也就是說三次t()改變的num其實是一個。這就是閉包的原因,如果沒有閉包,在子函數處理完num后,num回收,則應該是三個0。



2.閉包有什么用?

從另一個角度理解,如果一個函數沒有被回收釋放,那么他的父級、父級的父級。。。。。祖宗級(全局)的變量也不會被釋放,而且可以被函數訪問到。這就是為什么全局變量在哪里都可以訪問的原因了,其實就是閉包的應用。那什么時候全局變量不可用了呢,就是他內部的子函數引用都被清空的時候,也就是程序關閉了,網頁關閉了之后。



1.絕大多數時候我們不會有意識的用到閉包,但是沒有閉包你得程序是跑不了的,比如全局變量。。。。。



2.極少數情況下我們用函數去給一個變量“續命”。這種情況下,閉包就會被用到了。



3.還有就是,如果問你:



JS中沒有嚴格意義的私有變量,請問你能弄出來絕對私有么?答案:能。請看代碼:



<script>

  //這個num就是真的嚴格意義的私有

  let a=(function (){

    let num =0;

    return {

      get(){

        return num;

      },

      set(val){

        num=val;

      }

    }

  })();

  a.set(55);

  console.log(a.get());

</script>

這時a將返回一個json,里面有兩個函數,分別是get和set。當你在外部給num賦值或者是調用num時,必須通過get和set“屬性訪問器”去訪問,否則無法訪問到num變量(真正的私有)。因為當你不用get和set時候也就是說get和set函數是不存在的,那么根據“閉包的原理”num會被釋放掉,也就是說num不存在了,所以你直接num賦值是undefined的。



3.閉包帶來了什么問題呢?

這里最為典型的就是for循環中用var定義循環變量(var i=0;i<10;i++),循環的結果是相同的,就是最后一次運算的結果。這里就涉及到了作用域和閉包的問題。詳細的請看我的這篇文章,本文就不贅述了。



深入理解js_for循環條件中使用var為什么會出問題?(js塊級作用域理解)


轉自:csdn 論壇 作者:韋_恩


藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服


日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
国产精品女主播| 国产精品素人一区二区| 亚洲一级黄色| 精品久久久久av影院| 亚洲精品欧美二区三区中文字幕| 欧美黄页在线免费观看| 国产精品每日更新| 国产主播性色av福利精品一区| 国产精品视频26uuu| 一本一道久久a久久精品逆3p| 国产精品欧美日韩久久| 色妞色视频一区二区三区四区| 3d成人h动漫网站入口| 综合色中文字幕| 国产一区二区三区不卡在线观看| 欧美日韩不卡视频| 国产精品对白交换视频| 精品久久ai| 老司机午夜精品视频在线观看| 91精品啪在线观看国产18| 国产成人午夜电影网| 日韩av片免费在线观看| 亚洲精品videosex极品| 精品国产鲁一鲁****| 国产91色在线|免| 欧美日韩一区在线播放| 日本午夜免费一区二区| 手机在线免费看av| 91一区一区三区| 捆绑变态av一区二区三区| 亚洲午夜国产一区99re久久| 最近中文字幕mv在线一区二区三区四区| 国产精品户外野外| 午夜精品影院在线观看| 国产亚洲欧美日韩俺去了| 99精品国产一区二区三区2021| 精品视频一区二区三区四区五区| 亚洲成色精品| 在线网址91| 在线免费观看的av网站| 蜜桃免费一区二区三区| 国产中文字幕精品| 青青青草视频在线| 欧美精彩视频一区二区三区| 噜噜噜狠狠夜夜躁精品仙踪林| 欧美日韩另类国产亚洲欧美一级| 在线免费观看黄色网址| 96av麻豆蜜桃一区二区| 国产精品一区在线观看乱码| 成人黄色免费网站在线观看| 国户精品久久久久久久久久久不卡| 日韩中字在线| 成人自拍视频在线观看| 精品国产乱码久久久久久影片| 日韩高清中文字幕一区二区| av网站在线免费| 日韩av影片在线观看| 日韩五码电影| 麻豆精品久久精品色综合| 国产精品视频一| 欧美激情精品久久久久久大尺度| 亚洲狼人国产精品| 亚洲系列中文字幕| 91丨九色丨蝌蚪富婆spa| 国产精品自拍在线| 国产xxx精品视频大全| 日韩毛片网站| 在线亚洲精品福利网址导航| 欧美高清一级大片| 伊人久久五月天| 亚洲色图日韩av| 色777狠狠综合秋免鲁丝| 精品视频在线播放| 日韩成人在线视频观看| 韩国三级成人在线| 久久99久久99精品免观看软件| 在线视频三区| 91网站黄www| 亚洲第一页中文字幕| 日本免费在线一区| 成人全视频免费观看在线看| 欧美综合亚洲图片综合区| 久久机这里只有精品| 色综合天天综合网天天狠天天| 欧美在线不卡视频| 色婷婷亚洲婷婷| 992tv在线成人免费观看| 日韩亚洲在线| 亚洲一区国产视频| 中文字幕字幕中文在线中不卡视频| 欧洲成人综合网| 78精品国产综合久久香蕉| 好吊色欧美一区二区三区| 国产天堂亚洲国产碰碰| 插插插亚洲综合网| 久久国产精品亚洲人一区二区三区| 亚洲欧美中文日韩在线v日本| 中文字幕亚洲欧美一区二区三区| 国产精品国产一区| 日韩在线中文| 麻豆视频在线免费观看| 综合图区亚洲| 久久久综合av| 欧美中在线观看| 青青国产精品| 亚洲影影院av| 国产乱对白刺激视频不卡| 波多野结衣中文字幕一区二区三区| 亚洲国产日韩综合一区| 欧美激情在线一区二区三区| 国产精品九九九| 国产三级一区| 国产丝袜一区视频在线观看| 久久麻豆精品| 成人性生交大片免费看午夜| 亚洲a一区二区| 91国内在线视频| 久久性天堂网| 91精品入口| 久久久精品国产99久久精品芒果| 亚洲午夜免费电影| 欧美视频二区36p| 日本综合字幕| 精品一区二区综合| 欧美久久久久久| 自拍视频在线观看一区二区| 欧美日韩在线直播| 91精品国产手机| 成人国产亚洲欧美成人综合网| 日韩av在线精品| 中文在线资源观看视频网站免费不卡| 亚洲一区二区三区四区在线免费观看| 欧美日韩午夜电影网| 91在线视频官网| 久久精品这里热有精品| 91成人在线免费观看| 777久久久精品| 国产午夜精品视频| 91九色02白丝porn| 蜜桃一区二区三区在线| 欧美在线视频一区二区三区| 一本一本久久| 亚洲毛片在线免费| 久久精品丝袜高跟鞋| 欧美成人自拍视频| 午夜一区不卡| 偷拍亚洲色图| 日韩免费在线免费观看| 日韩精品在线观看一区二区| 午夜电影一区二区| 国产美女一区二区三区| 蜜桃视频欧美| 一区二区久久久久| 成人av色网站| 日韩电影在线免费| 国产91精品一区二区麻豆亚洲| 日本午夜精品一区二区| 视频三区在线| 欧美日韩精品二区| 成人久久18免费网站图片| 国产九色精品| 97成人在线视频| 欧美一区二区三区婷婷月色| 一区二区中文字幕|