JavaScript閉包

閉包?

閉包是指可以包含自由(未綁定到特定對(duì)象)變量的代碼塊弃鸦;這些變量不是在這個(gè)代碼塊內(nèi)或者任何全局上下文中定義的洗鸵,而是在定義代碼塊的環(huán)境中定義(局部變量)∑凉浚“閉包” 一詞來源于以下兩者的結(jié)合:要執(zhí)行的代碼塊(由于自由變量被包含在代碼塊中称勋,這些自由變量以及它們引用的對(duì)象沒有被釋放)和為自由變量提供綁定的計(jì)算環(huán)境(作用域)胸哥。在PHP、Scala赡鲜、Scheme空厌、Common Lisp、Smalltalk银酬、Groovy蝇庭、JavaScript、Ruby捡硅、 Python哮内、Go、Lua、objective c北发、swift 以及Java(Java8及以上)等語言中都能找到對(duì)閉包不同程度的支持纹因。

中文名 閉包 外文名 closure 相關(guān)學(xué)科 離散數(shù)學(xué) 用? ? 途 編程邏輯 特? ? 點(diǎn) 未綁定到特定對(duì)象

目錄

1 拓?fù)涓拍?/p>

? 本質(zhì)

? 度量空間中的

? 極限點(diǎn)

? 性質(zhì)

2 舉例說明

3 語法結(jié)構(gòu)

4 環(huán)境表達(dá)

? 代碼

? 特點(diǎn)

? 作用

? 另一個(gè)例子

? 結(jié)果

? 應(yīng)用場(chǎng)景

? 匿名內(nèi)部

? 定義

5 離散數(shù)學(xué)中

6 Lua中

? 包

? 可以這樣做

? 假設(shè)

? 外部局部變量

? 二種意義

拓?fù)涓拍罹庉?/p>

集合A的閉包定義為所有包含A的閉集之交。A的閉包是包含A的最小閉集琳拨。

本質(zhì)

集合 S 是閉集當(dāng)且僅當(dāng) Cl(S)=S(這里的cl即closure瞭恰,閉包)。特別的狱庇,空集的閉包是空集惊畏,X 的閉包是 X。集合的交集的閉包總是集合的閉包的交集的子集(不一定是真子集)密任。有限多個(gè)集合的并集的閉包和這些集合的閉包的并集相等颜启;零個(gè)集合的并集為空集,所以這個(gè)命題包含了前面的空集的閉包的特殊情況浪讳。無限多個(gè)集合的并集的閉包不一定等于這些集合的閉包的并集缰盏,但前者一定是后者的父集。

若 A 為包含 S 的 X 的子空間淹遵,則 S 在 A 中計(jì)算得到的閉包等于 A 和 S 在 X 中計(jì)算得到的閉包(Cl_A(S) = A ∩ Cl_X(S))的交集口猜。特別的,S在 A 中是稠密的透揣,當(dāng)且僅當(dāng) A 是 Cl_X(S) 的子集济炎。

度量空間中的

對(duì)歐幾里德空間的子集 S,x 是 S 的閉包點(diǎn)辐真,若所有以 x 為中心的開球都包含 S 的點(diǎn)(這個(gè)點(diǎn)也可以是 x)冻辩。

這個(gè)定義可以推廣到度量空間 X 的任意子集 S。具體地說拆祈,對(duì)具有度量 d 的度量空間 X,x 是 S 的閉包點(diǎn)倘感,若對(duì)所有 r > 0放坏,存在 y 屬于 S,使得距離 d(x,y) < r(同樣的老玛,可以是 x = y)淤年。另一種說法可以是,x 是 S 的閉包點(diǎn)蜡豹,若距離 d(x,S) := inf{d(x,s) : s 屬于 S} = 0(這里 inf 表示下確界)麸粮。

這個(gè)定義也可以推廣到拓?fù)淇臻g,只需要用鄰域替代“開球”镜廉。設(shè) S 是拓?fù)淇臻g X 的子集弄诲,則 x 是 S 的閉包點(diǎn),若所有 x 鄰域都包含 S 的點(diǎn)。注意齐遵,這個(gè)定義并不要求鄰域是開的寂玲。

極限點(diǎn)

閉包點(diǎn)的定義非常接近極限點(diǎn)的定義。這兩個(gè)定義之間的差別非常微小但很重要——在極限點(diǎn)的定義中梗摇,點(diǎn) x 的鄰域必須包含和 x 不同的集合的點(diǎn)拓哟。

因此,所有極限點(diǎn)都是閉包點(diǎn)伶授,但不是所有的閉包點(diǎn)都是極限點(diǎn)断序。不是極限點(diǎn)的閉包點(diǎn)就是孤點(diǎn)。也就是說糜烹,點(diǎn) x 是孤點(diǎn)违诗,若它是 S 的元素,且存在 x 的鄰域景图,該鄰域中除了 x 沒有其他的點(diǎn)屬于 S较雕。

對(duì)給定的集合 S 和點(diǎn) x,x 是 S 的閉包點(diǎn)挚币,當(dāng)且僅當(dāng) x 屬于 S亮蒋,或 x 是 S 的極限點(diǎn)。

集合的閉包

集合 S 的閉包是所有 S 的閉包點(diǎn)組成的集合妆毕。S 的閉包寫作 cl(S)慎玖,Cl(S) 或 S?。

性質(zhì)

cl(S) 是 S 的閉父集笛粘。

cl(S) 是所有包含 S 的閉集的交集趁怔。

cl(S) 是包含 S 的最小的閉集。

集合 S 是閉集薪前,當(dāng)且僅當(dāng) S = cl(S)润努。

若 S 是 T 的子集,則 cl(S) 是 cl(T) 的子集示括。

若 A 是閉集铺浇,則 A 包含 S 當(dāng)且僅當(dāng) A 包含 cl(S)。

有時(shí)候垛膝,上述第二或第三條性質(zhì)會(huì)被作為拓?fù)溟]包的定義鳍侣。

在第一可數(shù)空間(如度量空間)中,cl(S) 是所有點(diǎn)的收斂數(shù)列的所有極限吼拥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末倚聚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子凿可,更是在濱河造成了極大的恐慌惑折,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異唬复,居然都是意外死亡矗积,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門敞咧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棘捣,“玉大人,你說我怎么就攤上這事休建≌Э郑” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵测砂,是天一觀的道長茵烈。 經(jīng)常有香客問我,道長砌些,這世上最難降的妖魔是什么呜投? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮存璃,結(jié)果婚禮上仑荐,老公的妹妹穿的比我還像新娘。我一直安慰自己纵东,他們只是感情好粘招,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偎球,像睡著了一般洒扎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衰絮,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天袍冷,我揣著相機(jī)與錄音,去河邊找鬼猫牡。 笑死胡诗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镊掖。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼褂痰,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼亩进!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缩歪,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤归薛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體主籍,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡习贫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了千元。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苫昌。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖幸海,靈堂內(nèi)的尸體忽然破棺而出祟身,到底是詐尸還是另有隱情,我是刑警寧澤物独,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布袜硫,位于F島的核電站,受9級(jí)特大地震影響挡篓,放射性物質(zhì)發(fā)生泄漏婉陷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一官研、第九天 我趴在偏房一處隱蔽的房頂上張望秽澳。 院中可真熱鬧,春花似錦阀参、人聲如沸肝集。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杏瞻。三九已至,卻和暖如春衙荐,著一層夾襖步出監(jiān)牢的瞬間捞挥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工忧吟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留砌函,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓溜族,卻偏偏與公主長得像讹俊,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煌抒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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

  • 閉包(closure)是Javascript語言的一個(gè)難點(diǎn)仍劈,也是它的特色,很多高級(jí)應(yīng)用都要依靠閉包實(shí)現(xiàn)寡壮。 一贩疙、變量...
    zouCode閱讀 1,275評(píng)論 0 13
  • 前言 總括 :這篇文章使用有效的javascript代碼向程序員們解釋了閉包讹弯,大牛和功能型程序員請(qǐng)自行忽略。 譯者...
    KX九五閱讀 279評(píng)論 0 1
  • 前言 這篇文章使用有效的javascript代碼向程序員們解釋了閉包这溅,大牛和功能型程序員請(qǐng)自行忽略组民。 基礎(chǔ)篇 閉包...
    kiaizi閱讀 365評(píng)論 0 7
  • javascript之閉包 閉包的概念 ????閉包(closure)是 JavaScript 的一種語法特性。 ...
    呦_小宋啊閱讀 209評(píng)論 0 2
  • JavaScript的閉包 個(gè)人博客:Damonare的個(gè)人博客 首先聲明悲靴,這是一篇面向小白的博客臭胜,不過也歡迎各位...
    秦至閱讀 407評(píng)論 0 5