回調(diào)與閉包

1、回調(diào)函數(shù)

??? 一個(gè)通過函數(shù)指針調(diào)用的函數(shù)壕探。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù)冈钦,當(dāng)這個(gè)指針被用來調(diào)用其所指向的函數(shù)時(shí),我們就說這是回調(diào)函數(shù)李请∏粕福回調(diào)函數(shù)不是由該函數(shù)的實(shí)現(xiàn)方直接調(diào)用厉熟,而是在特定的事件或條件發(fā)生時(shí)由另外的一方調(diào)用的,用于對(duì)該事件或條件進(jìn)行響應(yīng)较幌。

??? 在JS中揍瑟,可以理解為函數(shù)A作為參數(shù)(函數(shù)引用)傳遞到另一個(gè)函數(shù)B中,并且這個(gè)函數(shù)B執(zhí)行函數(shù)A乍炉。我們就說函數(shù)A叫做回調(diào)函數(shù)绢片。如果沒有名稱(函數(shù)表達(dá)式),就叫做匿名回調(diào)函數(shù)岛琼。而Ajax的異步加載時(shí)用到了回調(diào)函數(shù)的底循,但其實(shí)回調(diào)不僅僅是用在異步中,同步操作也可以使用:

同步的場(chǎng)景: 即在每個(gè)函數(shù)執(zhí)行完成后調(diào)用另一個(gè)函數(shù)

??? 異步的情況也很多:

網(wǎng)上的總結(jié)

2槐瑞、閉包

? 1)什么是閉包熙涤?

??????? 能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在javascript中困檩,只有函數(shù)內(nèi)部的子函數(shù)才能讀取局部變量祠挫,所以閉包可以理解成一個(gè)“定義在函數(shù)內(nèi)部的函數(shù)”。創(chuàng)建閉包的最常見的方式就是在一個(gè)函數(shù)內(nèi)創(chuàng)建另一個(gè)函數(shù)窗看,通過另一個(gè)函數(shù)訪問這個(gè)函數(shù)的局部變量茸歧。使用閉包有一個(gè)優(yōu)點(diǎn),也是它的缺點(diǎn)显沈,就是可以把局部變量駐留在內(nèi)存中软瞎,可以避免使用全局變量。

??????? Javascript 中拉讯,每個(gè)函數(shù)都有一個(gè)與之相關(guān)聯(lián)的作用域鏈涤浇。每次調(diào)用 JavaScript函數(shù)的時(shí)候,都會(huì)為之創(chuàng)建一個(gè)新的對(duì)象用來保存局部變量魔慷,并把這個(gè)對(duì)象添加至作用域鏈中只锭。當(dāng)函數(shù)返回時(shí),再將這個(gè)對(duì)象刪除院尔,此對(duì)象會(huì)被當(dāng)做垃圾回收蜻展。但如果這個(gè)函數(shù)定義了嵌套的函數(shù),并將它存儲(chǔ)在某處的屬性里邀摆,就意味著有了一個(gè)外部引用指向這個(gè)嵌套的函數(shù)纵顾。它就不會(huì)被當(dāng)作垃圾回收贼穆,它所指向的變量綁定對(duì)象同樣不會(huì)被回收鳞尔。

? 2)閉包特性

??????? a纹坐、函數(shù)嵌套函數(shù)

??????? b糖声、.函數(shù)內(nèi)部可以引用外部的參數(shù)和變量

??????? c符喝、參數(shù)和變量不會(huì)被垃圾回收機(jī)制回收

? 3)例子

foo函數(shù)中形成了一個(gè)閉包匾鸥,只要bar函數(shù)在数尿,垃圾回收機(jī)制就不會(huì)去動(dòng)foo函數(shù)被冒,而此時(shí),我們的bar函數(shù)所指向的那個(gè)匿名函數(shù)就可以一直去訪問那個(gè)number和x蠕搜,而且每次調(diào)用怎茫,都會(huì)得到上一次被自增了以后的number。




參考:JavaScript之再談回調(diào)與閉包 - Lance_lou - 博客園

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讥脐,一起剝皮案震驚了整個(gè)濱河市遭居,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旬渠,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件端壳,死亡現(xiàn)場(chǎng)離奇詭異告丢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)损谦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門岖免,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人照捡,你說我怎么就攤上這事颅湘。” “怎么了栗精?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵闯参,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我悲立,道長(zhǎng)鹿寨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任薪夕,我火速辦了婚禮脚草,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘原献。我一直安慰自己馏慨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布姑隅。 她就那樣靜靜地躺著写隶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粤策。 梳的紋絲不亂的頭發(fā)上樟澜,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼秩贰。 笑死霹俺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的毒费。 我是一名探鬼主播丙唧,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼觅玻!你這毒婦竟也來了想际?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤溪厘,失蹤者是張志新(化名)和其女友劉穎胡本,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畸悬,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侧甫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹋宦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片披粟。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冷冗,靈堂內(nèi)的尸體忽然破棺而出守屉,到底是詐尸還是另有隱情,我是刑警寧澤蒿辙,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布拇泛,位于F島的核電站,受9級(jí)特大地震影響须板,放射性物質(zhì)發(fā)生泄漏碰镜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一习瑰、第九天 我趴在偏房一處隱蔽的房頂上張望绪颖。 院中可真熱鬧,春花似錦甜奄、人聲如沸柠横。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牍氛。三九已至,卻和暖如春烟阐,著一層夾襖步出監(jiān)牢的瞬間搬俊,已是汗流浹背紊扬。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唉擂,地道東北人餐屎。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玩祟,于是被迫代替她去往敵國(guó)和親腹缩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)空扎,也就是一...
    悟名先生閱讀 4,132評(píng)論 0 13
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,146評(píng)論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,093評(píng)論 1 32
  • 數(shù)日不曾提筆寫字藏鹊,在紅色的西電稿紙上劃了滿滿一張才恢復(fù)手感。最先落下的是歪扭的四個(gè)字转锈,好久不見盘寡。對(duì)我自己說,也對(duì)這...
    湯十二閱讀 287評(píng)論 1 0
  • 不是刻意去想起,只是偶爾被提及甫煞,原以為云淡風(fēng)輕,卻還是會(huì)淚濕眼眶冠绢,走過那么多四季的變化抚吠,回憶卻還在訴說從前。 ...
    確幸小時(shí)光閱讀 637評(píng)論 1 1