閉包學習之我的理解

2021-08-30 22:38:12 字數 799 閱讀 7827

學習資料

[url]

demo

toggle

/**如下例,內部函式引用外部函式的變數(這裡是變數i)

該內部函式即形成閉包,"閉"是指內部函式中的變數對於外部不可見(而內部函式可以引用外部變數)

思考:照此理解,我們應該經常在不知不覺中使用著閉包,只要我們在客戶端環境下定義乙個函式,而

該函式引用了全域性變數,那麼這不就是乙個閉包?因為該函式和全域性變數是屬於windows這個頂級物件的

*/var arr=;

var def=function ()

});}

}def();

/*注意執行結果,閉包裡變數的值並不是建立時的值,而是外部函式中該變數最後的值

(只是建立了乙個' return ("第"+i+"個元素"); '的函式體)

*/alert(arr[0].id+":"+arr[0].getindex());//0:第3個元素

alert(arr[1].id+":"+arr[1].getindex());//1:第3個元素

alert(arr[2].id+":"+arr[2].getindex());//2:第3個元素

/**閉包的用途

1 減少全域性變數,避免汙染

2 記憶資料狀態

*/var counter=(function ();//使用閉包和匿名自執行函式,將該變數封裝起來,減少全域性變數汙染,而且"記憶"內部函式函式的運算結果

return else}};

})();

swift閉包,我的理解

什麼是閉包?可以捕獲和儲存其所在上下文中任意常量和變數的引用的表示式 我把所有的函式都理解為是閉包 全域性函式 不能捕獲值的閉包 方法 定義在例項中的函式,所以方法也能當閉包表示式處理 巢狀函式 作用區域小點,可以捕獲其封閉函式域內值的閉包。例如 引數和返回值為空元組 的表示式 func open ...

對於閉包我的理解

閉包這個概念以前看過幾次,不是很理解,今天在菜鳥上又看了一遍,覺得自己好像理解了。在此記下。其實,我覺得可以把閉包理解為為了解決計數器問題的乙個方法吧。什麼是計數器問題呢?就是說,我要建立乙個計數器函式,這個函式每執行一次,計數器就加1。聽起來很簡單。於是就有人開始寫函式。寫函式為了儲存你執行函式的...

Python之我對閉包理解1

閉包 針對函式而言,是在在函式中提出的概念 條件 1.外部函式中定義了內部函式 即有函式巢狀 2.外部函式有返回值 3.外部函式返回的值是 內部函式名 即函式入口位址 為方便記憶不搞混淆,我們這裡可以說返回的是函式名 4.內部函式呼叫 引用 了外部函式的變數 不引用不叫嚴格的閉包 格式 def 外部...