September 20, 2023

Viiisit [JavaScript] - First-Class Function & Callback Function!

#javascript

一級函式(First-Class Function)

一級函式是指在程式語言中,函式被視為一種「第一級公民」,可以像其他數據類型(如整數、字符串)一樣被處理。
也就是說,函式可以被賦值給變數,作為函式的參數傳遞,以及作為函式的返回值。

一級函式的特點:

例如,以下是JavaScript中一級函式的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 函式賦值給變數
const greet = function(name) {
return `Hello, ${name}!`;
};

// 函式作為另一個函式的參數
function sayHello(greetingFunction, name) {
console.log(greetingFunction(name));
}

// 函式作為返回值
function createGreeter(greeting) {
return function(name) {
return `${greeting}, ${name}!`;
};
}

// 函式在運行時創建
const hello = createGreeter("Hi");
console.log(hello("Alice"));

回呼函式(Callback Function)

回呼函式是一種特殊的一級函式,他作為參數傳遞給另一個函式,
並且在特定條件滿足或事件發生時被調用。
通常用於事件處理、非同步操作和回呼(Callback)機制。

回呼函數通常用於以下情況:

  1. 事件處理:當某個事件發生時,例如按下按鈕、網絡請求完成、定時器觸發等,系統會調用事先定義的回呼函數來處理事件。這使得事件處理代碼更加模組化和可維護。

  2. 非同步操作:在執行非同步操作(例如讀取文件、發送HTTP請求、處理用戶輸入等)時,回呼函數可用於處理操作完成後的回應或錯誤。這樣可以確保應用程序不會因等待操作完成而被阻塞。

  3. 泛型化設計:回呼函數允許您將特定行為以函數參數的形式傳遞給其他函數,從而實現更靈活的、可定制的行為。這種方法在許多庫和框架中被廣泛使用,例如 JavaScript 中的 Array.map() 和 Array.filter()。

以下是JavaScript中回呼函式的例子: