閉包的概念?優缺點?

烏烏龜大師發表於2020-10-18

閉包的概念:

閉包是指有權訪問另一個函式作用域中的變數的函式。

解決的問題就是:可以在全域性中訪問區域性變數

建立閉包的方式:

在一個函式內部建立另一個函式,並返回該函式

優點:

●避免全域性變數的汙染

●希望一個變數長期儲存在記憶體中(快取變數)

缺點:

記憶體洩露(消耗)

●常駐記憶體,增加記憶體使用量

使用閉包的注意點:

●由於閉包會使得函式中的變數都被儲存在記憶體中,記憶體消耗很大,所以不能濫用閉包,否則會造成網頁的效能問題,在IE中可能導致記憶體洩露。解決方法是,在退出函式之前,將不使用的區域性變數全部刪除

●閉包會在父函式外部,改變父函式內部變數的值。所以,如果你把父函式當作物件(object) 使用,把閉包當作它的公用方法(Public Method), 把內部變數當作它的私有屬性(private value),這時一定要小心,不要隨便改變父函式內部變數的值

相關文章