1. 程式人生 > >前端面試之JS閉包

前端面試之JS閉包

前端面試之JS閉包

面試回答:
什麼是閉包 :閉包就是在函式裡定義函式,而且內部函式可以引用外部函式的引數和區域性變數,當外部函式返回這個內部函式時,內部函式引用的引數和區域性變數儲存在內部函式裡

為什麼要用閉包:因為js的函式作用域的關係,一般情況下外部是訪問不了函式內部的變數的,設計閉包結構就可以訪問到函式內部的變數,還有就是閉包可以讓變數長期儲存在記憶體裡,生命週期較長

閉包應用:for迴圈非同步問題,函式防抖及函式節流問題,封裝私有變數等等

缺點:如果閉包濫用會造成記憶體洩露,影響頁面效能,每次用完之後要立刻釋放資源,把引用指標指向null