閉包

閉包是什么

「函數(shù)」和「函數(shù)內(nèi)部能訪(fǎng)問(wèn)到的變量」(也叫環(huán)境)的總和缘挑,就是一個(gè)閉包。簡(jiǎn)單說(shuō)桶略,就是一個(gè)函數(shù)用到了它外面的變量语淘,這種用法叫閉包。

看個(gè)例子

function foo(){
  var local =1
  function bar(){
    local +=1
    return local
  }
  return bar
}
var func = foo()
func()

local 變量和 bar 函數(shù)組成了一個(gè)閉包际歼。

閉包的作用

閉包常常用來(lái)間接訪(fǎng)問(wèn)一個(gè)變量惶翻,換句話(huà)說(shuō),就是隱藏一個(gè)變量鹅心。

假設(shè)我們?cè)谧鲆粋€(gè)游戲吕粗,在寫(xiě)其中關(guān)于「還剩幾條命」的代碼。

如果不用閉包旭愧,你可以直接用一個(gè)全局變量:

var lives = 30

萬(wàn)一有人把這個(gè)改了怎么辦颅筋?用局部變量

但是用局部變量別人又訪(fǎng)問(wèn)不到,怎么辦呢输枯?

暴露一個(gè)訪(fǎng)問(wèn)器(函數(shù))议泵,讓別人可以「間接訪(fǎng)問(wèn)」

!function(){
  var lives = 30
  function award(){
    lives += 1
  }
  function die(){
    lives -= 1
  }
}()

lives 變量和 award 函數(shù)組成了一個(gè)閉包,lives 變量和 die 函數(shù)又組成了一個(gè)閉包桃熄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末先口,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜻拨,更是在濱河造成了極大的恐慌池充,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缎讼,死亡現(xiàn)場(chǎng)離奇詭異收夸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)血崭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)卧惜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人夹纫,你說(shuō)我怎么就攤上這事咽瓷。” “怎么了舰讹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵茅姜,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我月匣,道長(zhǎng)钻洒,這世上最難降的妖魔是什么奋姿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮素标,結(jié)果婚禮上称诗,老公的妹妹穿的比我還像新娘。我一直安慰自己头遭,他們只是感情好寓免,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著计维,像睡著了一般袜香。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上享潜,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天困鸥,我揣著相機(jī)與錄音嗅蔬,去河邊找鬼剑按。 笑死,一個(gè)胖子當(dāng)著我的面吹牛澜术,可吹牛的內(nèi)容都是我干的艺蝴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鸟废,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼猜敢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起盒延,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缩擂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后添寺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胯盯,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年计露,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了博脑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡票罐,死狀恐怖叉趣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情该押,我是刑警寧澤疗杉,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蚕礼,受9級(jí)特大地震影響烟具,放射性物質(zhì)發(fā)生泄漏椭蹄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一净赴、第九天 我趴在偏房一處隱蔽的房頂上張望绳矩。 院中可真熱鬧,春花似錦玖翅、人聲如沸翼馆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)应媚。三九已至,卻和暖如春猜极,著一層夾襖步出監(jiān)牢的瞬間中姜,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工跟伏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丢胚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓受扳,卻偏偏與公主長(zhǎng)得像携龟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子勘高,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 本章將會(huì)介紹 閉包表達(dá)式尾隨閉包值捕獲閉包是引用類(lèi)型逃逸閉包自動(dòng)閉包枚舉語(yǔ)法使用Switch語(yǔ)句匹配枚舉值關(guān)聯(lián)值原...
    寒橋閱讀 1,562評(píng)論 0 3
  • 閉包(closure)是Javascript語(yǔ)言的一個(gè)難點(diǎn)华望,也是它的特色蕊蝗,很多高級(jí)應(yīng)用都要依靠閉包實(shí)現(xiàn)。 一赖舟、變量...
    zock閱讀 1,075評(píng)論 2 6
  • 閉包(closure)是Javascript語(yǔ)言的一個(gè)難點(diǎn)蓬戚,也是它的特色,很多高級(jí)應(yīng)用都要依靠閉包實(shí)現(xiàn)建蹄。 一碌更、變量...
    zouCode閱讀 1,275評(píng)論 0 13
  • 錄屏gif軟件:licecap下載[http://download.csdn.net/detail/pyy9107...
    凱文Kevin21閱讀 191評(píng)論 0 1
  • 讀史鐵生的《奶奶的星星》感觸頗深,得知這本書(shū)是因?yàn)橛^(guān)看了熱播的《朗讀者》欄目洞慎,我從小是外婆拉扯大的痛单,對(duì)我來(lái)說(shuō),外婆...
    Polly湘兒閱讀 171評(píng)論 0 0