亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js閉包所用的場合以及優缺點分析

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

先上段代碼:

//函數afunction a(){var i=0;//函數bfunction b(){alert(++i);}return b;}//函數cvar c = a();c();

代碼特點:

1、函數b嵌套在函數a內部;
2、函數a返回函數b。
代碼中函數a的內部函數b,被函數a外面的一個變量c引用的時候,這就叫創建了一個閉包。有時候函數b也可以用一個匿名函數代替來返回,即return function(){};

優點:1.保護函數內的變量安全,加強了封裝性 2.在內存中維持一個變量(用的太多就變成了缺點,占內存)
閉包之所以會占用資源是當函數a執行結束后, 變量i不會因為函數a的結束而銷毀, 因為b的執行需要依賴a中的變量。
不適合場景:返回閉包的函數是個非常大的函數

閉包的典型框架應該就是jquery了。

閉包是javascript語言的一大特點,主要應用閉包場合主要是為了:設計私有的方法和變量。
這在做框架的時候體現更明顯,有些方法和屬性只是運算邏輯過程中的使用的,不想讓外部修改這些屬性,因此就可以設計一個閉包來只提供方法獲取。

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

總結一下:

優點:

1. 邏輯連續,當閉包作為另一個函數調用的參數時,避免你脫離當前邏輯而單獨編寫額外邏輯。
2. 方便調用上下文的局部變量。
3. 加強封裝性,第2點的延伸,可以達到對變量的保護作用。

缺點:

閉包有一個非常嚴重的問題,那就是內存浪費問題,這個內存浪費不僅僅因為它常駐內存,更重要的是,對閉包的使用不當會造成無效內存的產生,看下面的例子:

var array = [];function abc() {var foo = function(){}array.push(foo);return foo;}for(var i = 0 ; i < 10000; i ++){abc();}alert(array[0] == array[1]);

通過上面的測試我們會看到這一萬次abc()執行所產生的同一個邏輯的閉包的地址并不相同,也就是說它生產了一堆的一模一樣的Function對象,這樣有好處就是可以以工廠模式產生函數以備使用,然而如果你的稍有不慎將閉包當做常態邏輯使用,就不可避免的會造成內存垃圾。當中換個語法可能更好理解:

var foo = new Function();

所以關于閉包,就我自己的習慣而言,能不用就不用,如果非用不可,那就想辦法保持閉包對象的數量很少甚至唯一。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品少妇v888av| 亚洲欧美国内爽妇网| 欧美电影在线观看| 久久久久国产精品www| 久久精品国产亚洲| 成人国内精品久久久久一区| 热久久这里只有| 日韩在线视频观看正片免费网站| 亚洲欧美中文日韩在线| 欧美限制级电影在线观看| 久久久久久久久亚洲| 最近2019中文字幕一页二页| 亚洲国产精品成人av| 久久久久九九九九| 中文字幕欧美在线| 日韩欧美亚洲国产一区| 欧洲永久精品大片ww免费漫画| 国产91精品久久久久久久| 亚洲国产精品小视频| 欧美国产日韩一区| 亚洲国产一区二区三区四区| 欧美肥臀大乳一区二区免费视频| 国产精品高潮呻吟久久av无限| 成人美女av在线直播| 亚洲欧美日韩精品久久亚洲区| 久久91精品国产91久久久| 51色欧美片视频在线观看| 亚洲午夜精品久久久久久性色| 国产成人精品视频| 欧美视频国产精品| 成人黄色在线观看| 91夜夜未满十八勿入爽爽影院| 亚洲性无码av在线| 精品中文字幕在线| 日本免费在线精品| 成人黄色av播放免费| 亚洲视频免费一区| 国产精品国内视频| 欧美性高跟鞋xxxxhd| 国产精品亚洲自拍| 亚洲国产精品专区久久| 欧美最顶级丰满的aⅴ艳星| 久久99久国产精品黄毛片入口| 国产精品99久久久久久www| 亚洲毛片在线免费观看| 欧美激情视频给我| 国产精品稀缺呦系列在线| 午夜精品一区二区三区在线视| 日韩国产一区三区| 亚洲第一级黄色片| 久久亚洲影音av资源网| www.日韩免费| 日韩在线观看免费全集电视剧网站| 久久久成人的性感天堂| 国产97人人超碰caoprom| 亚洲视频在线播放| 国产精品久久久91| 懂色aⅴ精品一区二区三区蜜月| 麻豆国产精品va在线观看不卡| 欧美高清在线视频观看不卡| 国产精品情侣自拍| 亚洲福利视频网站| 国产精品激情av在线播放| 热re99久久精品国产66热| 亚洲大胆美女视频| 98精品国产自产在线观看| 国产一区二区久久精品| 日韩视频免费大全中文字幕| 一区二区福利视频| 欧洲成人午夜免费大片| 日本一区二三区好的精华液| 亚洲国产天堂网精品网站| 色哟哟亚洲精品一区二区| 亚洲网站视频福利| 欧美丰满老妇厨房牲生活| 午夜欧美不卡精品aaaaa| 亚洲一区国产精品| 中文字幕v亚洲ⅴv天堂| 久久综合久中文字幕青草| 国产精品电影在线观看| 国产精品第三页| 岛国视频午夜一区免费在线观看| 亚洲欧美中文字幕在线一区| 久久精品中文字幕一区| 日韩在线观看视频免费| 亚洲一区二区三区视频| 日本不卡视频在线播放| 久久精品福利视频| 欧美国产日韩免费| 夜夜嗨av色一区二区不卡| 午夜精品久久久久久久99热| 欧美日韩国产精品专区| 国产成人高潮免费观看精品| 伊人久久综合97精品| 亚洲精品xxxx| 亚洲成人网在线观看| 欧美激情第99页| 久久久久久久久中文字幕| 欧美成人精品在线播放| 中文字幕在线亚洲| 97精品免费视频| 久久国产精品影片| 久久久久这里只有精品| 黑人精品xxx一区| 亚洲日韩中文字幕在线播放| 久久这里有精品视频| 色偷偷综合社区| 久久综合免费视频| 国产美女搞久久| 欧美性猛交xxxx久久久| 亚洲欧洲国产伦综合| 国产精品久久久久久亚洲调教| 97国产成人精品视频| 欧美色道久久88综合亚洲精品| 5566日本婷婷色中文字幕97| 日韩网站在线观看| 97色在线视频观看| 亚洲视频一区二区三区| 亚洲国内精品视频| 最近2019中文字幕第三页视频| 精品国偷自产在线视频99| 日韩大片免费观看视频播放| 日韩精品在线观看网站| 亚洲天堂av网| 一区二区欧美日韩视频| 国产精品久久久久免费a∨| 亚洲综合色av| 亚洲天堂久久av| 欧美视频在线观看 亚洲欧| 日本久久久久久久| 欧美整片在线观看| 亚洲性生活视频| 久久久精品999| 成人欧美在线观看| 亚洲激情视频在线播放| 亚洲国产精品99| 久久亚洲精品一区| 国产成人福利网站| 国产精品直播网红| 狠狠躁18三区二区一区| 日韩电影在线观看永久视频免费网站| 91久久在线观看| 国产v综合v亚洲欧美久久| 日韩不卡在线观看| 92版电视剧仙鹤神针在线观看| 亚洲欧美一区二区三区在线| 亚洲国产高潮在线观看| 91在线视频免费| 黄色成人在线免费| 综合国产在线视频| 日韩在线视频免费观看高清中文| 91免费看视频.| 国产精品免费视频xxxx| 亚洲人线精品午夜| 色偷偷噜噜噜亚洲男人| 国产精品美乳一区二区免费| 97超级碰碰人国产在线观看| 国产美女精品免费电影| 91午夜理伦私人影院| 欧美日韩激情美女| 亚洲天堂av网| 国产精品久久久精品| 97国产真实伦对白精彩视频8| 国产欧美在线视频|