麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

關于JS中的閉包淺談

2019-11-20 22:22:32
字體:
來源:轉載
供稿:網友

( ⊙o⊙ )!!!這個也太尼瑪官方了撒,作為菜鳥的我根本無法理解它想表達個什么意思!但是作為一只好奇的菜鳥又很想知道“閉包”到底是個什么東西!所以最終找到了傳說中的“度娘”幫忙!還算有了一點小小的理解!

個人見解:在函數體內定義另外的方法函數,而這個方法函數被函數以外的變量引用,這時就形成了閉包!

可能這樣的理解也太抽象了,并不是那么簡單易懂!實例吧:

復制代碼 代碼如下:

<script type="text/javascript">

function A(){
    var S=0;
    function B(){
        alert(++S);
    }
    return B;
}
var C=A();
C();
</script>

上面這一段代碼就創建了一個閉包,因為當函數執行到var C=A();時,表面上看C指向的是A函數,而實際上C所指向的函數是B函數,所以再執行到C()的時候就會輸出2;這樣的話B函數就被A函數以外的變量引用了,根據個人見解,創建了一個閉包!

當我在小小的了解了什么時候閉包后也順便看了哈閉包的用途,據說閉包的用途主要有兩點:

1、可以讀取函數內部的變量

2、讓這些變量始終保持在內存中

復制代碼 代碼如下:

<script type="text/javascript">

function A(){
 var S=1;
 D=function(){
        S+=1;
    }
 function B(){
  alert(S);
 }
    return B;
}
var C=A();
C(); // 輸出1
D();
C(); // 輸出2

 </script>

上面的代碼中C指向的還是是B函數,C執行了兩次,第一次輸出1,第二次輸出2,這證明了S一直被保存在內存中,并沒有在A函數在被調用后自動清除,這是為什么呢,原因是因為B函數被賦給了一個全局變量,這導致了B函數一直在內存中,而B函數的執行又需要依賴著A函數,所以A也一直在內存中,不會在調用結束后被回收!(這樣的理解貌似有點不專業)!

表達完畢,請廣大群眾多多指教!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品无码一区二区三区 | 看a级毛片| 成人国产精品久久久 | 亚洲国产精品500在线观看 | 蜜桃免费在线 | 最新在线黄色网址 | 日韩中文字幕三区 | 在线视频 欧美日韩 | 高清视频91 | av在线免费观看网 | 成人毛片视频免费看 | 久久久久久久久久一本门道91 | 最新中文在线视频 | 日韩欧美中文字幕视频 | 免费网站看v片在线a | 亚洲精品午夜视频 | 97干在线 | 精品国产一区二区三区久久久蜜月 | 国产精品美女久久久久久不卡 | 激情综合视频 | 色玖玖综合 | 黄色大片网站在线观看 | 国产毛片网站 | 伊人久操视频 | 美国一级毛片片aa久久综合 | 国产精品视频一区二区三区综合 | 看全色黄大色黄大片女图片 | 国产一区二区视频精品 | 亚洲国产色婷婷 | 国产精品区一区二区三区 | av在线久草 | 色播av在线 | 久草导航 | 亚洲一区二区三区四区精品 | 久久久资源网 | 操碰97 | 宅男噜噜噜66国产在线观看 | 成人短视频在线观看 | 免费黄色成人 | 最新午夜综合福利视频 | 成人国产精品色哟哟 |