javascript callback() 回調(diào)函數(shù)

reference article

function httpRequest(url,callback){
    // httpRequest不是阻塞函數(shù)  簡(jiǎn)單點(diǎn)說(shuō)就是不會(huì)阻止下面的函數(shù)執(zhí)行
    //用回調(diào)函數(shù)去解決
    var xhr = new XMlHttpRequest();
    xhr.open("GET",url,ture);
    xhr.onreadystatechange = function(){
        if (xhr.readyState ==4) {
            callback(xhr.responseText);
        };
    }
    xhr.send();
}
var text;
httpRequest("text.txt", function(result){
    text = result;
    console.log(text);
})

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

這是js里的解釋了乃沙,字面上理解下來(lái)就是

回調(diào)就是一個(gè)函數(shù)的調(diào)用過(guò)程

那么就從理解這個(gè)調(diào)用過(guò)程開(kāi)始吧丈积。函數(shù)a有一個(gè)參數(shù)毁兆,這個(gè)參數(shù)是個(gè)函數(shù)b赐纱,當(dāng)函數(shù)a執(zhí)行完以后執(zhí)行函數(shù)b。那么這個(gè)過(guò)程就叫回調(diào)。
其實(shí)中文也很好理解:回調(diào),回調(diào),就是回頭調(diào)用的意思蟆炊。函數(shù)a的事先干完,回頭再調(diào)用函數(shù)b瀑志。
舉個(gè)現(xiàn)實(shí)的例子:約會(huì)結(jié)束后你送你女朋友回家涩搓,離別時(shí),你肯定會(huì)說(shuō):“到家了給我發(fā)條信息劈猪,我很擔(dān)心你昧甘。”對(duì)不战得,然后你女朋友回家以后還真給你發(fā)了條信息充边。
其實(shí)這就是一個(gè)回調(diào)的過(guò)程。你留了個(gè)函數(shù)b(要求女朋友給你發(fā)條信息)給你女朋友,然后你女朋友回家浇冰,回家的動(dòng)作是函數(shù)a贬媒。她必須先回到家以后,函數(shù)a的內(nèi)容執(zhí)行完了肘习,再執(zhí)行函數(shù)b际乘,然后你就收到一條信息了。
這里必須清楚一點(diǎn):函數(shù)b是你以參數(shù)形式傳給函數(shù)a的漂佩,那么函數(shù)b就叫回調(diào)函數(shù)脖含。
也許有人有疑問(wèn)了:一定要以參數(shù)形式傳過(guò)去嗎,我不可以直接在函數(shù)a里面調(diào)用函數(shù)b嗎投蝉?確實(shí)可以养葵。

解惑:如果你直接在函數(shù)a里調(diào)用的話,那么這個(gè)回調(diào)函數(shù)就被限制死了瘩缆。但是使用函數(shù)做參數(shù)就有下面的好處:當(dāng)你a(b)的時(shí)候函數(shù)b就成了回調(diào)函數(shù)关拒,而你還可以a(c)這個(gè)時(shí)候,函數(shù)c就成了回調(diào)函數(shù)咳榜。如果你寫(xiě)成了function a(){...;b();}就失去了變量的靈活性夏醉。

i think this callback only is a design mode of coding

下面用代碼來(lái)證實(shí)我的理解爽锥。

<html>   
   
<head>   
   
<title>回調(diào)函數(shù)(callback)</title>   
<script language="javascript" type="text/javascript">   
function a(callback)   
{      
   alert("我是parent函數(shù)a涌韩!");   
    alert("調(diào)用回調(diào)函數(shù)");   
    callback();   
}   
function b(){   
alert("我是回調(diào)函數(shù)b");   
  
}   
function c(){   
alert("我是回調(diào)函數(shù)c");   
  
}   
  
function test()   
{   
    a(b);   
   a(c);   
}   
  
</script>   
</head>   
   
<body>   
<h1>學(xué)習(xí)js回調(diào)函數(shù)</h1>   
<button onClick=test()>click me</button>   
<p>應(yīng)該能看到調(diào)用了兩個(gè)回調(diào)函數(shù)</p>    
</body>   
   
</html>  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市氯夷,隨后出現(xiàn)的幾起案子臣樱,更是在濱河造成了極大的恐慌,老刑警劉巖腮考,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雇毫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡踩蔚,警方通過(guò)查閱死者的電腦和手機(jī)棚放,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)馅闽,“玉大人飘蚯,你說(shuō)我怎么就攤上這事「R玻” “怎么了局骤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)暴凑。 經(jīng)常有香客問(wèn)我峦甩,道長(zhǎng),這世上最難降的妖魔是什么现喳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任凯傲,我火速辦了婚禮犬辰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冰单。我一直安慰自己忧风,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布球凰。 她就那樣靜靜地躺著狮腿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呕诉。 梳的紋絲不亂的頭發(fā)上缘厢,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音甩挫,去河邊找鬼贴硫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伊者,可吹牛的內(nèi)容都是我干的英遭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼亦渗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挖诸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起法精,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤多律,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后搂蜓,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體狼荞,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年帮碰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了相味。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡殉挽,死狀恐怖丰涉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情此再,我是刑警寧澤昔搂,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站输拇,受9級(jí)特大地震影響摘符,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一逛裤、第九天 我趴在偏房一處隱蔽的房頂上張望瘩绒。 院中可真熱鬧,春花似錦带族、人聲如沸锁荔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阳堕。三九已至,卻和暖如春择克,著一層夾襖步出監(jiān)牢的瞬間恬总,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工肚邢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壹堰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓骡湖,卻偏偏與公主長(zhǎng)得像贱纠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子响蕴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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