1.閉包概念:
就是函式內部通過某種方式訪問一個函式內部的區域性變數
再次理解:
閉包產生原因:
1.內部函式引用了外部函式的變數
作用:延長區域性變數的生命週期
讓函式外部可以呼叫到函式內部的資料
利用此可以進行對內部資料進行封裝操作
封裝自定義模組
產生時間:
外部函式被定義的執行完後產生的閉包
死亡:
巢狀的內部函式變成了垃圾回收物件的時候
2.Java中的類似操作
public class Demo{ private static String a; public static String getA(){ return a; } } Demo demo=new Demo(); //在這裡需要訪問demo中的a屬性怎麼辦? demo.a;//會報錯 demo.getA();//可以
3。javaScript中的操作
function Demo(){ var a=10; function getA(){ return a; } return getA; } //我需要訪問a這個變數怎麼辦?? alert(a);//報錯 alert(Demo().getA());//結果10
看上面兩個例子,其實就是差不多可以理解閉包啦,相當於說Java獲取類內部的私有的static變數