以下說的閉包是指JavaScript中的閉包
閉包:閉包就是能夠讀取其他函數內部變量的函數,在javascript中,只有函數內部的子函數才能讀取局部變量,所以閉包可以理解爲定義在函數內部的函數,在本質上,閉包是將函數內部和函數外部連接起來的橋樑
其實每一個函數都是閉包,都可以訪問函數外部的局部變量,只不過函數內部嵌套函數是更高級的閉包,可以訪問另一個函數作用域中的變量
控制檯的結果0
1
2
return inner 連接了內部函數inner和外部函數cnt,inner和cnt互相依賴,所以i一直保存在內存中
閉包的作用:1訪問函數內部的變量 2使變量始終保存在內存中
閉包的作用域:內部函數可以訪問外部函數的變量和參數,如果要查詢變量的類型,會向上自動查詢直到原型,如有有則返回,沒有則返回underfine,外部函數是不能訪問內部函數的。