JavaScript 回撥函式
回撥函式並不是一種新函式,而是函式的一種使用方式。
應用十分廣泛,甚至當我們還不知道回撥函式這個概念的時候,已經在程式碼中應用它。
首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function callback(){ console.log("螞蟻部落"); } setTimeout(callback, 2000);
代在兩秒之後列印出字串"螞蟻部落",callback被用作回撥函式。
程式碼是不是非常的簡單,由此可能會導致初學者根本就沒有意識正在應用回撥函式。
回撥函式概念十分簡單,很多時候由於"回撥函式(callback)"這個貌似高大上的名字產生一些"恐懼感"。
一.回撥函式概念:
什麼是回撥函式,英文文件介紹如下:
[HTML] 純文字檢視 複製程式碼A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
翻譯成漢語大致意思是,回撥函式作為引數傳遞給另一個函式,當主體函式執行完畢後,再去執行回撥函式。
通俗的說,就是一個函式作為引數傳遞給另一個函式,當某個事件發生後,觸發回撥函式的執行。
現在對前面的程式碼做一下分析:
(1).將函式callback作為引數傳遞給setTimeout函式。
(2).callback執行的時機是setTimeout函式執行後的2秒。
如果再通俗一點,可以從它的名字"回撥函式"來理解記憶,回撥函式就是先把函式準備好,回頭時機到了再呼叫。
上述理解方式好像有點牽強附會,但是對於理解記憶可能有所幫助。
二.傳遞的是函式物件:
一定要注意,傳遞的是函式物件。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function callback(){ console.log("螞蟻部落"); } setTimeout(callback(), 2000);
上述程式碼中,setTimeout第一個引數傳遞的不是callback函式物件,而是callback函式的返回值。由於callback的返回值是undefined,自然就會報錯。
如果callback函式的返回值是一個函式物件,那麼就沒什麼問題了。
程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function callback(){ return function(){ console.log("螞蟻部落"); } } setTimeout(callback(), 2000);
上述程式碼依然會在兩秒後列印出"螞蟻部落"。
因為callback返回一個函式物件,所以實質上給setTimeout傳遞的依然是一個函式物件。
相關文章
- JavaScript回撥函式JavaScript函式
- 深入理解 JavaScript 回撥函式JavaScript函式
- JavaScript回撥函式的高手指南JavaScript函式
- 回撥函式函式
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- JS—回撥函式JS函式
- 回撥函式(CallBack)函式
- [JS]回撥函式和回撥地獄JS函式
- 函式指標&回撥函式Callback函式指標
- 回撥函式 與 函式閉包函式
- java 回撥函式示例Java函式
- 函式回撥(C++)函式C++
- 回撥函式的作用函式
- Python/OpenCV:回撥函式PythonOpenCV函式
- TLS回撥函式(Note)TLS函式
- JavaScript中回撥函式知識點,都在這了!JavaScript函式
- JS之回撥函式(callback)JS函式
- C++回撥函式 用法C++函式
- 回撥函式的理解(一)函式
- java回撥函式機制Java函式
- JavaScript 非同步操作裡的巢狀回撥函式JavaScript非同步巢狀函式
- java回撥函式-非同步回撥-簡明講解Java函式非同步
- 【知識點】inline函式、回撥函式、普通函式inline函式
- setInterval 回撥函式傳引數函式
- js 徹底理解回撥函式JS函式
- C++中的回撥函式C++函式
- 函式指標的重要用途——回撥函式函式指標
- Python技法3:匿名函式、回撥函式和高階函式Python函式
- 什麼是 JavaScript 裡的非同步操作和回撥函式JavaScript非同步函式
- C語言函式指標與回撥用函式C語言函式指標
- C 語言回撥函式詳解函式
- Fastadmin fast.api.open回撥函式ASTAPI函式
- 回撥函式的作用與意義函式
- ajax 下載Excel 新增回撥函式Excel函式
- JavaScript非同步程式設計史:回撥函式到Promise到Async/AwaitJavaScript非同步程式設計函式PromiseAI
- 【不在混淆的C】指標函式、函式指標、回撥函式指標函式
- 關於 js 中的回撥函式 callbackJS函式
- 事實上,回撥函式還不錯!!函式