如何使用useEffect的cleanup函式
認識閉包
閉包(Closure)是一個在計算機科學和程式設計中常見的概念,特別是在支援函數式編程的語言中,如JavaScript、Python等。閉包是一種函數和其周圍環境的結合,其中環境包含了函數被創建時可訪問的所有變數。
閉包的主要特點包括以下幾點:
函數內嵌在其他函數中:閉包通常是一個函數,它被定義在另一個函數內部,稱為外部函數。
函數可以訪問外部函數的變數:閉包可以訪問外部函數中定義的變數,即使外部函數已經執行完畢。
保持狀態:閉包允許在外部函數完成執行後,保持對其內部變數的訪問權限,這使得在後續的函數調用中能夠保持狀態。
閉包在很多情況下都非常有用,特別是在事件處理、回調函數、異步編程等情境中。通過閉包,你可以將數據和函數打包在一起,以便更靈活地處理程序邏輯。
以下是一個JavaScript的閉包示例:
javascript
Copy code
function outerFunction() {
var outerVariable = 10;
function innerFunction() {
console.log(outerVariable); // 內部函數訪問外部變數
}
return innerFunction;
}
var closure = outerFunction(); // 創建閉包
closure(); // 調用閉包,輸出 10
在這個示例中,innerFunction 是一個閉包,它可以訪問 outerFunction 中的 outerVariable,即使 outerFunction 已經執行完畢。閉包使得我們可以在稍後的時間點調用 closure() 來訪問 outerVariable 的值。