1. 程式人生 > 其它 >閉包的理解

閉包的理解

技術標籤:js

閉包的定義
在這裡插入圖片描述
百度百科上是這麼說的。閉包就是能夠讀取其他函式內部變數的函式。例如在javascript中,只有函式內部的子函式才能讀取區域性變數,所以閉包可以理解成“定義在一個函式內部的函式“。在本質上,閉包是將函式內部和函式外部連線起來的橋樑。
我們看一個最簡單的例子

function d(){
    var b = 11;
    function v(){
        return b++
    }
    return v
}

這就是一個常見簡單的閉包,子函式讀取了父函式內部的區域性變數。
我們來看另一個例子

(function(){
	let d =
22; function b(){ return d++ } })

這是閉包嗎?
這也是一個閉包,依然滿足閉包的定義。
在平時寫程式碼的時候,其實我們也會不經意間用到閉包。
總結倆點;
一、函式巢狀。
二、訪問其他函式內部變數。
閉包的缺點。
容易汙染記憶體。
這一點說重要也很重要。
我們在使用閉包的時候,如果那個函式是一個一直都有需要使用的函式,那麼也就不會存在記憶體佔用汙染的說法。
但是如果是一些不經意間使用的閉包,而且沒有多次使用的。那這造成了汙染。
所以要善於觀察,發現這種情況進行變數清空就好了。