閉包

**閉包**

```

閉包的三大特點為:

1烂瘫、函數(shù)嵌套函數(shù)

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

3奇适、參數(shù)和變量不會被回收坟比。

列:

function test(){

? ? var a=1;

? ? return function(){

? ? ? alert(a);

? ? }

? }

? var try=test();

? try();//彈出a的值

這個例子中,變量a在test方法外部是無法訪問的嚷往,但test方法里面葛账,嵌套了一個匿名函數(shù),通過return返回皮仁,test作用域中的變量a籍琳,

可以在匿名函數(shù)中訪問菲宴。并且當test方法執(zhí)行后,變量a所占內(nèi)存并不會釋放趋急,以達到嵌套的函數(shù)還可以訪問的目的喝峦。

```

閉包作用

```

閉包的作用在于,可以通過閉包宣谈,設計私有變量及方法愈犹。

舉例來說:在java中創(chuàng)建perosn類,含有私有變量name闻丑。

public class Person{

? ? private String name='wy';

? ? public Person(val){

? ? ? name=val;

? ? }

? ? public void setName(val){

? ? ? name=val;

? ? }

? ? public String getName(){

? ? ? return name;

? ? }

}

```

全局

```

最外層函數(shù)定義的變量擁有全局作用域漩怎,即對任何內(nèi)部函數(shù)來說,都是可以訪問的

列:

var outerVar = "outer";

? ? ? function fn(){

? ? ? ? console.log(outerVar);

? ? ? }

? ? ? fn();//result:outer

```

局部

```

和全局作用域相反嗦嗡,局部作用域一般只在固定的代碼片段內(nèi)可訪問到勋锤,而對于函數(shù)外部是無法訪問的,最常見的例如函數(shù)內(nèi)部

列:

function fn(){

? ? ? ? var innerVar = "inner";

? ? ? }

? ? ? fn();

? ? ? console.log(innerVar);// ReferenceError: innerVar is not defined

```

**作用域鏈**

```

在JavaScript中侥祭,函數(shù)也是對象叁执,實際上,JavaScript里一切都是對象矮冬。函數(shù)對象和其它對象一樣谈宛,擁有可以通過代碼訪問的屬性和一系列僅供JavaScript引擎訪問的內(nèi)部屬性。其中一個內(nèi)部屬性是[[Scope]]胎署,該內(nèi)部屬性包含了函數(shù)被創(chuàng)建的作用域中對象的集合吆录,這個集合被稱為函數(shù)的作用域鏈,它決定了哪些數(shù)據(jù)能被函數(shù)訪問琼牧。

列:

當一個函數(shù)創(chuàng)建后恢筝,它實際上保存一個作用域鏈,并且作用域鏈會被創(chuàng)建此函數(shù)的作用域中可訪問的數(shù)據(jù)對象填充巨坊。例如定義下面這樣一個函數(shù)

function func() {

? ? ? ? ? ? var num = 1;

? ? ? ? ? ? alert(num);

? ? ? ? }

? ? ? ? func();

```

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侄柔,隨后出現(xiàn)的幾起案子占调,更是在濱河造成了極大的恐慌,老刑警劉巖敢靡,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啸胧,死亡現(xiàn)場離奇詭異,居然都是意外死亡贝椿,警方通過查閱死者的電腦和手機陷谱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門烟逊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宪躯,你說我怎么就攤上這事访雪∠耆穑” “怎么了坝橡?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵计寇,是天一觀的道長氯窍。 經(jīng)常有香客問我蹲堂,道長,這世上最難降的妖魔是什么政供? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任布隔,我火速辦了婚禮稼虎,結果婚禮上,老公的妹妹穿的比我還像新娘哀军。我一直安慰自己,他們只是感情好谎倔,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布片习。 她就那樣靜靜地躺著蹬叭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侈离。 梳的紋絲不亂的頭發(fā)上筝蚕,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天起宽,我揣著相機與錄音洲胖,去河邊找鬼绿映。 笑死,一個胖子當著我的面吹牛叉弦,可吹牛的內(nèi)容都是我干的藻糖。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼洋满!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起正罢,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤翻具,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虑乖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晾虑,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡帜篇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年笙隙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片签钩。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡铅檩,死狀恐怖莽鸿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兔沃,我是刑警寧澤级及,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布创千,位于F島的核電站入偷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏殿雪。R本人自食惡果不足惜丙曙,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扯旷。 院中可真熱鬧索抓,春花似錦、人聲如沸耸黑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搜锰。三九已至,卻和暖如春蛾绎,著一層夾襖步出監(jiān)牢的瞬間鸦列,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工顽爹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镜粤,地道東北人玻褪。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓带射,卻偏偏與公主長得像,于是被迫代替她去往敵國和親券勺。 傳聞我的和親對象是個殘疾皇子关炼,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348