JS 閉包的作用就是在A執行完並回傳後,使得Javascript的垃圾回收機制不會收回A所佔用的資源,因為A的內部函數B的執行需要依賴A中的變量,如果不使用閉包,B函數執行所依賴的變數會造成全域污染。
閉合套件本質
集合S 是閉集合當且僅當Cl(S)= S(這裡的cl即closure,閉包)。特別的,空集合的閉包是空集,X 的閉包是 X。集合的交集的閉包總是集合的閉包的交集的子集(不一定是真子集)。有限多個集合的並集的閉包和這些集合的閉包的並集相等;零個集合的並集為空集,所以這個命題包含了前面的空集的閉包的特殊情況。無限多個集合的並集的閉包不一定等於這些集合的閉包的並集,但前者一定是後者的父集。
若A 為包含S 的X 的子空間,則S 在A 中計算得到的閉包等於A 和S 在X 中計算得到的閉包(Cl_A(S) = A ∩ Cl_X(S ))的交集。特別的,S在 A 中是稠密的,當且僅當 A 是 Cl_X(S) 的子集。
閉包範例
模擬私有變數:
function Counter(start){ var count = start; return{ increment:function(){ count++; }, get:function(){ return count; } } } var foo = Counter(4); foo.increment(); foo.get();// 5
這裡,Counter 函數傳回兩個閉包,函數 increment 和函數 get。這兩個函數都維持對外部作用域 Counter 的引用,因此總是可以存取此作用域內定義的變數count。
推薦教學:《JavaScript》
以上是JS 閉包的作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!