JS之回調函數(callback)


1.什么是回調函數?

  -- 簡單點說,一個函數被作為參數傳遞給另一個函數(在這里我們把另一個函數叫做“otherFunction”),回調函數在otherFunction中被調用。

  --可以是匿名函數也可以是命名函數

2.回調函數的特點

  (1)自己定義的函數

  (2)你沒有調用

  (3)最終它執行了

3.常見的回調函數

  (1)DOM事件回調函數

    

 

 

 

 

  (2)定時器回調函數

 

 

 

 

  (3)ajax請求回調函數

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

  (4)生命周期回調函數  

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

4.拓展

  --代碼分類

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

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

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

   

  執行結果: 

  

 

  重上述案例中,我們可以 看到回調函數不管在整個代碼的什么位置,它都要比初始化代碼執行完后才會執行。

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

(此處涉及到時間循環模型,后續內容會補充,這里我們只需要大致了解回調函數是什么時候執行的)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM