色偷偷超碰_亚洲成肉网_日日干夜夜撸_黄色一级片子_男人午夜视频_久久精品99久久久久久

Js閉包

2020-3-3    前端達(dá)人

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

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

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

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

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

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

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

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

3,保護(hù)私有作用域變量

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

缺點(diǎn)是:占用內(nèi)存空間 閉包的最大問(wèn)題是:有可能造成占用大量的內(nèi)存空間,降低程序的執(zhí)行效率,甚至有可能造成數(shù)據(jù)溢出或者是數(shù)據(jù)泄露 因?yàn)闉榱吮Wo(hù)數(shù)據(jù)的安全性,特殊情況下,才會(huì)使用閉包舉例來(lái)說(shuō):

// 記數(shù)器:



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

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)部,可以訪問(wèn)add局部變量count

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

//訪問(wèn)到了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中,沒(méi)有塊作用域,但是在閉包的寫法里,可以體現(xiàn)出來(lái)。

function outerFunc(){

var outVar = 10;

var innerF = function (){

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

}

alert(innerVar);

return innerF;

}



閉包的作用:

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



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

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

增加塊級(jí)作用域

總結(jié):

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

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

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







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

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

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

日歷

鏈接

個(gè)人資料

存檔

主站蜘蛛池模板: 特黄特色免费视频 | 天堂色在线 | 亚洲欧美日韩中文字幕在线观看 | 黄色片免费网站 | 一区二区三区高清不卡 | 欧美在线视频一区二区 | 日韩网站在线播放 | 成人片网址 | 蜜臀av一区二区三区有限公司 | 自拍偷拍第3页 | 毛片小视频 | 中文字幕在线观看2018 | 亚洲手机在线观看 | 风间由美一区 | 成人午夜在线观看视频 | 经典三级久久 | 国产精品毛片久久 | 好吊操视频这里只有精品 | 欧美日韩一区二区在线 | 成人精品久久 | 亚洲欧美国产精品 | 五月天精品视频 | 国产精品久久久久免费 | www.猫咪av.com| 久久三 | 亚洲午夜免费视频 | 午夜一区二区三区在线观看 | 一区二区在线免费观看视频 | 国产成人小视频在线观看 | 欧美黄色一区二区 | 天天干天天操天天射 | 日本黄色片视频 | av一区在线播放 | 狠狠干狠狠艹 | 欧美日韩一级大片 | 成人影视在线播放 | 久久综合中文字幕 | 插菊综合网 | 91精品福利 | 深夜视频在线免费观看 | 国产精品网站在线观看 |