全面了解 Javascript 閉包(Closure)
閉包是 JavaScript 中一個重要的概念,也是一個比較難理解的概念之一。本篇技術筆記將詳細解釋閉包的概念、優點、缺點、實現方式和技巧,以及閉包在不同程式語言中的異同。希望通過本篇技術筆記的介紹,讀者可以更好地理解和應用閉包。
什麼是閉包?
閉包是指一個函式與其引用的外部變數形成的一個環境,也可以理解為函式和其引用的外部變數的一個包裹。下面是一個簡單的閉包例子:
function outer() {
const outerVar = 'Hello'; // 真正要執行的函式內要用到的變數
// 真正要執行的函式
function inner() {
const innerVar = 'World';
console.log(`${outerVar} ${innerVar}`);
}
return inner; // 把內部函數回傳出來
}
const fn = outer();
fn(); // output: "Hello World"
提示
看到一個 function 內 return 了另一個 function,通常就是有用到閉包的概念。