首頁  >  文章  >  web前端  >  JS 閉包的作用是什麼?

JS 閉包的作用是什麼?

Guanhui
Guanhui原創
2020-06-24 16:09:324831瀏覽

JS 閉包的作用就是在A執行完並回傳後,使得Javascript的垃圾回收機制不會收回A所佔用的資源,因為A的內部函數B的執行需要依賴A中的變量,如果不使用閉包,B函數執行所依賴的變數會造成全域污染。

JS 閉包的作用是什麼?

閉合套件本質

集合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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn