<thead id="kdfuf"><font id="kdfuf"></font></thead>
<samp id="kdfuf"></samp>
    <nav id="kdfuf"><strong id="kdfuf"></strong></nav>
      中文字幕无码一区二区三区在线,久久精品人人做人人爽,国产一级内射无挡观看,十八禁在线黄色网站,日韩欧美国产另类久久久精品 ,少妇人妻偷人精品一区二区,久久午夜视频,亚洲春色AⅤ无码专区

      Js閉包

      2020-3-3    前端達人

      所謂閉包就是說,閉包是指有權訪問另外一個函數作用域中的變量的函數.可以理解為(能夠讀取其他函數內部變量的函數)

      閉包的三大特點為(既是優點,也是缺點):

      1,函數作用域空間不會被銷毀

      優點是:空間中的內容,永遠存在

      缺點是:占用大量的內存空間

      2,可以從外部訪問函數內部的變量

      優點是:使用變量數據方便

      缺點是:容易泄露數據信息

      3,保護私有作用域變量

      優點是:確保私有作用域變量一直存在

      缺點是:占用內存空間 閉包的最大問題是:有可能造成占用大量的內存空間,降低程序的執行效率,甚至有可能造成數據溢出或者是數據泄露 因為為了保護數據的安全性,特殊情況下,才會使用閉包舉例來說:

      // 記數器:



      //全局變量  全局變量降低函數的獨立性

      1

      // var count = 0;

      // function add(){

      // return count++;

      // }

      // console.log(add());

      // console.log(add());

      // console.log(add());



      //局部變量  函數執行外  局部變量銷毀

      1

      // function add(){

      // var count = 0;

      // return count++;

      // }

      // console.log(add());

      // console.log(add());

      // console.log(add());



      //plus定義在add的內部,可以訪問add局部變量count

      //f為一個全局變量,通過賦值后,成為add的返回值,也就是plus方法

      //訪問到了add中的局部變量count

      //所以count雖然是局部變量,但不允許被銷毀,plus就是閉包

      1

      2

      3

      4

      // function add(){

      // var count = 0;

      // function plus(){

      // return count++;

      // }

      // return plus;

      // }

      //

      // var f = add();

      //

      // console.log(f());

      // console.log(f());

      // console.log(f());



      //變身

      1

      // function add(){

      // var count = 0;

      // return function(){

      // return count++;

      // }

      // }

      //

      // var f = add();

      //

      // console.log(f());

      // console.log(f());

      // console.log(f());



      //繼續變身

      1

      // var f = (function (){

      // var count = 0;

      // return function(){

      // return count++;

      // }

      // }());

      //

      // console.log(f());

      // console.log(f());

      // console.log(f());

      //JS中,沒有塊作用域,但是在閉包的寫法里,可以體現出來。

      function outerFunc(){

      var outVar = 10;

      var innerF = function (){

      var innerVar = 20;//該變量雖然隸屬于outerFunc內部,但是它的作用域范圍只在innerF對應的函數體內,屬于塊級作用域

      }

      alert(innerVar);

      return innerF;

      }



      閉包的作用:

      正常函數執行完畢后,里面聲明的變量被垃圾回收處理掉,但是閉包可以讓作用域里的 變量,在函數執行完之后依舊保持沒有被垃圾回收處理掉



      可以讀取函數內部的變量

      讓這些變量的值始終保持在內存中。

      增加塊級作用域

      總結:

      1、 閉包是指有權訪問另一個函數作用域中的變量的函數,創建閉包的最常見的方式就是在一個函數內創建另一個函數,通過另一個函數訪問這個函數的局部變量。

      2、 閉包的缺點就是常駐內存,會增大內存使用量,使用不當很容易造成內存泄露。

      3、不必糾結到底怎樣才算閉包,其實你寫的每一個函數都算作閉包,即使是全局函數,你訪問函數外部的全局變量時,就是閉包的體現。







      ————————————————

      版權聲明:本文為CSDN博主「澈野」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

      原文鏈接:https://blog.csdn.net/fie_ld/article/details/104595753

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.tuitetiyu.cn

      存檔

      主站蜘蛛池模板: 丰满的女房东在线观看6| 精品国产福利片在线观看| a天天爽夜夜太爽视频精品| 午夜不卡欧美AAAAAA在线观看| 中文精品字幕久久无码| 五月天婷亚洲天婷综合网| 不卡国产视频第一页| 不卡无在一区二区三区四区| 熟妇无码乱子成人精品| 性姿势真人免费视频放| 亚洲免费无码小视频| 国产精品无码无需播放器| 国产农村一一级特黄毛片| 一级毛片在线不卡直接观看| 日韩精品国内国产一区二| 91久久人人澡人人添人人爽欧美| 在线 | 一区二区三区| 欧美一区二区三区日韩| 国产精品入口麻豆| 欧美人与动牲交片免| 亚洲一级毛片色色色| 定州市| 上萬網友分享日本13一14周岁a在线心得 | 亚洲精品无码鲁网午夜一本| 久久久水蜜桃国产成人网站| 国产婷婷色一区二区三区深爱网 | 西西人体44WWW高清大胆| 91精品国产高清一区二区性色| 国产精品毛片在线完整版| 久久精品国产99国产精2020丨| 不卡中文一二三区| 国产精品亚洲А∨天堂2021| 2022最新在线精品国自产拍视频 | 亚洲性无码av在线dⅴd| 蜜臀AⅤ永久无码精品| 少妇人妻真实偷人精品| 亚洲国产精品嫩草影院在线观看| 亚洲AV无一区二区三区久久久| 岛国中文字幕一区二区| 国产男女爽爽爽免费视频| 少妇人妻无码永久免费视频|