小兔JS教程(三)-- 徹底攻略JS回調(diào)函數(shù)
這一講來(lái)談?wù)劵卣{(diào)函數(shù)。
其實(shí)一句話就能概括這個(gè)東西:
回調(diào)函數(shù)就是把一個(gè)函數(shù)當(dāng)做參數(shù),傳入另一個(gè)函數(shù)中。傳進(jìn)去的目的僅僅是為了在某個(gè)時(shí)刻去執(zhí)行它。
如果不執(zhí)行,那么你傳一個(gè)函數(shù)進(jìn)去干嘛呢?
就比如說(shuō)對(duì)弈下棋,如果你都不想贏,那么你為什么要下棋?當(dāng)然了,如果你達(dá)到了某種至高無(wú)上的境界,參悟出一個(gè)“道”來(lái),就不一樣了。
所謂手中無(wú)劍,心中有劍。寫(xiě)了一個(gè)函數(shù),我雖然沒(méi)有去執(zhí)行它,但是在我心中已經(jīng)執(zhí)行了。
在此我們先不談那么高大上的境界,先說(shuō)點(diǎn)俗的,你想想啊,你好不容易寫(xiě)了一個(gè)function,你不去執(zhí)行執(zhí)行它,那你為什么要寫(xiě)呢?
1.回調(diào)函數(shù)快速入門(mén)
先來(lái)個(gè)快速入門(mén)吧。
比如我有兩個(gè)數(shù)字,分別為10和20,還定義了兩個(gè)函數(shù),一個(gè)是做加法,一個(gè)是做減法。
var num1 = 10;var num2 = 20; //加法function add(num1,num2){ alert(num1 + num2); } //減法function minus(num1,num2){ alert(num1 - num2); }
這樣應(yīng)該沒(méi)問(wèn)題,你肯定能看懂。
運(yùn)行一下:
add(num1,num2);minus(num1,num2);
好的,沒(méi)問(wèn)題。現(xiàn)在來(lái)思考,有沒(méi)有什么辦法,我創(chuàng)造一個(gè)函數(shù),同時(shí)具備了加法和減法的功能呢?
當(dāng)然有了,我大不了傳一個(gè)標(biāo)志位flag,如果是0,代表加法,如果是1,就代表減法。
像這樣:
function addOrMinus(flag,num1,num2){ if(flag == 0){ alert(num1 + num2); } if(flag == 1){ alert(num1 - num2); } }