粗略的一個定義「函數a有一個參數,這個參數是個函數b,當函數a執行完之後執行函數b。那麼這個過程就叫回調。」,這句話的意思是函數b以一個參數的形式傳入函數a並執行,順序是先執行a ,而後執行參數b,b就是所謂的回調函數。咱們先來看下面的例子。
app
function a(callback){ alert('a'); callback.call(this);//或者是 callback(), callback.apply(this),看我的喜愛 } function b(){ alert('b'); } //調用 a(b);
這樣的結果是先彈出 'a',再彈出‘b'。這樣估計會有人問了「寫這樣的代碼有什麼意思呢?好像沒太大的做用呢!」ide
是的,其實我也以爲這樣寫沒啥意思,「若是調用一個函數就直接在函數裏面調用它不就好了」。我這只是給你們寫個小例子,作初步的理解。真正寫代碼的過程當中不多用這樣無參數的,由於在大部分場景中,咱們要傳遞參數。來個帶參數的:
函數
function c(callback){ alert('c'); callback.call(this,'d'); } //調用 c(function(e){ alert(e); });
這個調用看起來是否是似曾相識,這裏e參數被賦值爲'd',咱們只是簡單的賦值爲字符竄,其實也能夠賦值爲對象。
this