国产精品美女久久久浪潮AV,国产精品三级一二三区,久久精品国产一区二区小说 ,依依成人影视国产精品,全部无卡免费的毛片在线看,日本一区二区三深夜不卡,国产精品女同一区二区久久,国产精品夜色一区二区三区

        Js閉包

        2020-3-3    前端達人

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

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

        1,函數(shù)作用域空間不會被銷毀

        優(yōu)點是:空間中的內(nèi)容,永遠(yuǎn)存在

        缺點是:占用大量的內(nèi)存空間

        2,可以從外部訪問函數(shù)內(nèi)部的變量

        優(yōu)點是:使用變量數(shù)據(jù)方便

        缺點是:容易泄露數(shù)據(jù)信息

        3,保護私有作用域變量

        優(yōu)點是:確保私有作用域變量一直存在

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

        // 記數(shù)器:



        //全局變量  全局變量降低函數(shù)的獨立性

        1

        // var count = 0;

        // function add(){

        // return count++;

        // }

        // console.log(add());

        // console.log(add());

        // console.log(add());



        //局部變量  函數(shù)執(zhí)行外  局部變量銷毀

        1

        // function add(){

        // var count = 0;

        // return count++;

        // }

        // console.log(add());

        // console.log(add());

        // console.log(add());



        //plus定義在add的內(nèi)部,可以訪問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());



        //繼續(xù)變身

        1

        // var f = (function (){

        // var count = 0;

        // return function(){

        // return count++;

        // }

        // }());

        //

        // console.log(f());

        // console.log(f());

        // console.log(f());

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

        function outerFunc(){

        var outVar = 10;

        var innerF = function (){

        var innerVar = 20;//該變量雖然隸屬于outerFunc內(nèi)部,但是它的作用域范圍只在innerF對應(yīng)的函數(shù)體內(nèi),屬于塊級作用域

        }

        alert(innerVar);

        return innerF;

        }



        閉包的作用:

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



        可以讀取函數(shù)內(nèi)部的變量

        讓這些變量的值始終保持在內(nèi)存中。

        增加塊級作用域

        總結(jié):

        1、 閉包是指有權(quán)訪問另一個函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的最常見的方式就是在一個函數(shù)內(nèi)創(chuàng)建另一個函數(shù),通過另一個函數(shù)訪問這個函數(shù)的局部變量。

        2、 閉包的缺點就是常駐內(nèi)存,會增大內(nèi)存使用量,使用不當(dāng)很容易造成內(nèi)存泄露。

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







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

        版權(quán)聲明:本文為CSDN博主「澈野」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

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

        日歷

        鏈接

        個人資料

        存檔

        主站蜘蛛池模板: 东辽县| 甘谷县| 在线精品亚洲一区二区绿巨人| 国产精品亚洲产品三区| 亚洲精品久久yy5099| 丝瓜视频在线观看免费| 大地资源中文第二页日本| 野花影视在线观看免费高清完整版韩国 | 最近中文字幕mv在线资源| 好男人手机在线观看| 美女视频黄频a免费| 搡bbb搡bbbb搡bbbb| 扒开腿狂躁女人爽出白浆| 99久久久国产精品消防器材| 亚洲成av人片在线观看| 野花韩国高清电影| 怀化市| 日本高清www无色夜在线视频| 国产对白国语对白| 2021国产麻豆剧传媒精品入口| 成人毛片一区二区| 装睡被陌生人摸出水好爽| 色欲色香天天天综合网www | 欧美性xxxx禁忌| 久久久久亚洲av无码专| 无码里番纯肉h在线网站| 午夜精品久久久久久久| 成全影院高清电影好看的电视剧| 人人妻人人狠人人爽| 精品一区二区三区在线观看视频| 给我免费观看片在线| 三级a黄在线观看| 察雅县| 97夜夜澡人人双人人人喊| 乐平市| 12裸体自慰免费观看网站| 国产真人无遮挡作爱免费视频| 美女裸奶100%无遮挡免费网站| 汉阴县| 99久久免费精品国产男女性高| 亚洲av国产av综合av|