千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip

閉包:
函數(shù)內部返回一個函數(shù),這個函數(shù)被外界引用,那么這個函數(shù)就不會被瀏覽器的回收機制銷毀回收,內部函數(shù)所用到的外部函數(shù)的變量也不會被銷毀。
優(yōu)點:讓臨時變量永駐內存
缺點:內存泄露
案例1:
function outer(){
var name = 'kerwin'
var age = 100
return function(){
return name + '111111'
}
}
var func = outer();
console.log(func());
func()
func()
案例2:
fetch('http://www.a.com/aaa')
fetch('http://www.a.com/bbb')
fetch('http://www.b.com/aaa')
fetch('http://www.b.com/bbb')
function FetchContainer(url){
return function(path){
return fetch(url+path)
}
}
var fetcha=FetchContainer('http://www.a.com')
fetcha('/aaa').then(res=>res.json()).then(res=>console.log(res))
fetcha('/bbb').then(res=>res.json()).then(res=>console.log(res))
fetcha('/ccc').then(res=>res.json()).then(res=>console.log(res))
fetcha('/ddd').then(res=>res.json()).then(res=>console.log(res))
fetcha = null; //解決內存泄露問題把使用完的變量設置為null。