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