1. 程式人生 > 其它 >如何深度理解JavaScript的回撥函式

如何深度理解JavaScript的回撥函式

我的部落格

首先,回撥函式這個概念,他是JS中的一個核心。

作為JS的核心,回撥函式和非同步執行是緊密相關的,也是必須跨過去的一道個門檻。

當然,我們這篇文字只談回撥,不說非同步。

物件?

JavaScript有物件嘛?

我們知道,JavaScript他不是一個面嚮物件語言,但是,我們的JavaScript是一個基於物件的指令碼語言。

啥意思,也就是基本上,JavaScript裡面的函式啊,變數啊,這些都是一個物件,當然這個概念不是像面嚮物件語言那樣。

回撥?

看這張圖,是一個簡單的回撥函式,怎麼回調了呢?

在一個函式裡面,我們將另一個函式作為引數,並在函式體內部呼叫它。在 JavaScript 裡,我們叫它 “回撥”

。所以,被傳遞給另一個函式作為引數的函式叫作回撥函式。

為什麼需要回調函式?

我們知道,JavaScript是一個典型的解釋型的指令碼語言,他在執行時,是一行一行執行的。

但是,我們有時候,必須在某些情況發生之後,程式碼才能執行(或者說必須執行),這就不是按順序運行了。

但是我們上面說了,JavaScript他是一個逐行執行的語言,那咋還能不按順序來呢?

這是是我們所說的非同步程式設計,即沒有按照原本順序來逐行執行。

回撥函式確保:函式在某個任務完成之前不執行,在任務完成之後立即執行。它幫助我們編寫非同步 JavaScript 程式碼,避免問題和錯誤。

說白了就是,將函式當作物件傳入另一個函式裡面執行,而且可以多層巢狀。

到了接觸Node.js或者ajax非同步時,自然就明白其概念了。

\