閉包

以下說的閉包是指JavaScript中的閉包

閉包:閉包就是能夠讀取其他函數內部變量的函數,在javascript中,只有函數內部的子函數才能讀取局部變量,所以閉包可以理解爲定義在函數內部的函數,在本質上,閉包是將函數內部和函數外部連接起來的橋樑

其實每一個函數都是閉包,都可以訪問函數外部的局部變量,只不過函數內部嵌套函數是更高級的閉包,可以訪問另一個函數作用域中的變量

function cnt(){
     var i = 0;
     function inner(){
console.log(i);
i++;
     }
     return inner;
}
var result = cnt();
result();
 result();
result();

控制檯的結果0

   1

   2

return inner  連接了內部函數inner和外部函數cnt,inner和cnt互相依賴,所以i一直保存在內存中


閉包的作用:1訪問函數內部的變量  2使變量始終保存在內存中


閉包的作用域:內部函數可以訪問外部函數的變量和參數,如果要查詢變量的類型,會向上自動查詢直到原型,如有有則返回,沒有則返回underfine,外部函數是不能訪問內部函數的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章