• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    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.lzhte.cn

    存檔

    主站蜘蛛池模板: 亚洲AV成人无码久久精品| 亚洲精品乱码久久久久66| 中文字幕乱码亚洲无线| 久久久噜噜噜久久综合| 国产精品久久久久网站| 免费黄色大全一区二区三区| 亚洲不卡av一区二区三区| 国产自产精品青青草原| 亚洲va在线播放一区| 石家庄市| 内射老阿姨1区2区3区4区| 国产精品国产自产拍高清AV| 18禁黄网站禁片免费观看国产| 国产蜜芽尤物在线一区| 车险| 久久久国产精品四虎| 强被迫伦姧在线观看无码| 97久久国产亚洲精品超碰热| 福利姬在线视频| 福利二区| 国产精成人品日日拍夜夜| 日韩精品永久免费播放平台| 中文字幕 日韩 人妻 无码| 97欧美精品系列一区二区| av毛片免费在线播放| 亚洲AV无码成人品爱| 亚洲人色婷婷成人网站在线观看 | 中文字幕最新有码在线| 91福利国产在线观看香蕉| 国产一区二区牛影视| 色二av手机版在线| 日韩人妻系列无码专区| 亚洲成在人线在线播放无码| 草草影院ccyy国产日本欧美| 国产欧美va欧美va香蕉在线观看| 国产国产午夜福利视频| 久久精品欧美一区二区| 成人片在线看无码不卡| 亚洲国产精品一区二区手机| 久久99精品久久久久九色| 无码区日韩专区免费系列|