說說你對閉包的理解?閉包
答:閉包是可以讀取其它函數內部變量的函數。本質上閉包是將函數內部和函數外部鏈接起來的一座橋樑。因爲js的鏈式做用域,由於函數也是對象,函數內部訪問函數外部的變量就相似於子對象一級一級往上找尋全部父對象的變量。內部函數訪問外部函數的變量,而且返回這個函數,這就造成了閉合包含的環形了,這就是閉包。閉包有兩個特色函數
1.能夠讀取其它函數內部的屬性性能
2.讓這些屬性的值始終保持在內存中。因此閉包對內存消耗大影響性能,還可能形成內存泄漏,因此能夠在函數返回以前把變量都釋放,這樣就能夠解決內存泄漏的問題了。對象
寫一個閉包函數:內存
functio f1() {作用域
let a = 2io
function f2(){console
console.log(a) function
}變量
return f2
}
let result = f1()
result() // 2