JS之回調函數(callback)

1.什麼是回調函數?ajax

  -- 簡單點說,一個函數被做爲參數傳遞給另外一個函數(在這裏咱們把另外一個函數叫作「otherFunction」),回調函數在otherFunction中被調用。函數

  --能夠是匿名函數也能夠是命名函數spa

2.回調函數的特色3d

  (1)本身定義的函數blog

  (2)你沒有調用生命週期

  (3)最終它執行了隊列

3.常見的回調函數事件

  (1)DOM事件回調函數ip

    

 

 

 

 

  (2)定時器回調函數回調函數

 

 

 

 

  (3)ajax請求回調函數

    略。(後續相應內容補充)

  (4)生命週期回調函數  

    略。(後續相應內容補充)

4.拓展

  --代碼分類

    (1)初始化代碼:通常的代碼,包括設置定時器,綁定監聽,發送ajax請求……

    (2)回調代碼:回調函數的代碼

  JavaScript引擎,在執行代碼時,先執行初始化代碼,等到初始化代碼所有執行結束時,再執行回調代碼。

   

  執行結果: 

  

 

  重上述案例中,咱們能夠 看到回調函數無論在整個代碼的什麼位置,它都要比初始化代碼執行完後纔會執行。

  上述代碼執行流程:前兩代碼打開了定時器,此時JavaScript引擎將回調函數,和設置的時間交給定時器管理模塊(事件管理模塊),待到事件觸發時,回調函數加入到回調隊列中(callback queue),此時處於待處理狀態。若是初始化代碼所有執行結束,纔會循環遍歷回調隊列中的回調函數。在上述代碼中先加入隊列的是延時時間爲0ms的定時器,而後纔是2000ms的定時器,因爲隊列的特性是先進先出,因此兩個定時器間,先執行第二個定時器,在執行第一個定時器。

(此處涉及到時間循環模型,後續內容會補充,這裏咱們只須要大體瞭解回調函數是何時執行的)

相關文章
相關標籤/搜索