[筆記] JavaScript 的基本觀念 – 13 – Closure 閉包

函式可以存取的變數,有其內往外找的特性。換言之,若一個函式其變數在自己的{}(封包)內沒有找到,那就會往外尋找直到 Global Execution。縱使函式其所佔有的記憶體位置已經被回收,但在封包內的函數仍然會保留。
javascript es6 logo


課程對應章節

Course 46 ~ Course 49 (全部一共有 85 Courses)

請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。課程連結網址:http://tinyurl.com/w7vrql6

內容

1. 閉包(Closure)的最主要目的,是讓 function 能夠有專有的變數,以免變數污染。
2. 縱使命名不同的變數,通通呼叫同一個函式。不過在 Execution Stack 上執行是各自獨立的,且變數都具有獨立的記憶體位置。當 function 於 execution stack 的環節結束了,變數並不會從記憶體中被清除。因此,當你在其他變數中呼叫此變數時,
3. 在 ES6 中,引入了 let 的概念。let 的變數作用域範圍都只會在 {} 閉包內,可以避免變數暴露在 global 環境中,而不小心被變更到而輸出意外的結果。


JavaScript 全攻略系列文章

  • [筆記] JavaScript 的基本觀念 – 20 – something new 新玩意
  • [筆記] JavaScript 的基本觀念 – 19 – 檢視 / 建立框架 view & build a framework
  • [筆記] JavaScript 的基本觀念 – 18 – 其他 miscellaneous
  • [筆記] JavaScript 的基本觀念 – 16 – new 和 constructor function 函數建構子
  • [筆記] JavaScript 的基本觀念 – 15 – prototype, reflection & extend
  • [筆記] JavaScript 的基本觀念 – 14 – call()、apply() 與 bind()
  • [筆記] JavaScript 的基本觀念 – 12 – IIFE
  • [筆記] JavaScript 的基本觀念 – 11 – Array, Syntax, Semicolon
  • [筆記] JavaScript 的基本觀念 – 10 – this
  • [筆記] JavaScript 的基本觀念 – 9 – 函數與物件 Function and Object
  • [筆記] JavaScript 的基本觀念 – 8 – Boolean & if/else
  • [筆記] JavaScript 的基本觀念 – 17 – 內建函數建構子
  • [筆記] JavaScript 的基本觀念 – 7 – 運算子
  • [筆記] JavaScript 的基本觀念 – 6 – 型別
  • [筆記] JavaScript 的基本觀念 – 5 – Asynchronous
  • [筆記] JavaScript 的基本觀念 – 4 – Variable Environment
  • [筆記] JavaScript 的基本觀念 – 3 – Execution Stack
  • [筆記] JavaScript 的基本觀念 – 2 – undefined
  • [筆記] JavaScript 全攻略:克服 JS 的奇怪部分
  • [筆記] JavaScript 的基本觀念 – 1 – Hoisting
  • 按讚加入粉絲團

    延伸閱讀