( ⊙o⊙ )!!!這個也太尼瑪官方了撒,作為菜鳥的我根本無法理解它想表達個什么意思!但是作為一只好奇的菜鳥又很想知道“閉包”到底是個什么東西!所以最終找到了傳說中的“度娘”幫忙!還算有了一點小小的理解!
個人見解:在函數體內定義另外的方法函數,而這個方法函數被函數以外的變量引用,這時就形成了閉包!
可能這樣的理解也太抽象了,并不是那么簡單易懂!實例吧:
function A(){
var S=0;
function B(){
alert(++S);
}
return B;
}
var C=A();
C();
</script>
上面這一段代碼就創建了一個閉包,因為當函數執行到var C=A();時,表面上看C指向的是A函數,而實際上C所指向的函數是B函數,所以再執行到C()的時候就會輸出2;這樣的話B函數就被A函數以外的變量引用了,根據個人見解,創建了一個閉包!
當我在小小的了解了什么時候閉包后也順便看了哈閉包的用途,據說閉包的用途主要有兩點:
1、可以讀取函數內部的變量
2、讓這些變量始終保持在內存中
表達完畢,請廣大群眾多多指教!
新聞熱點
疑難解答