閉包我看描述是說 由函數和其外部詞法環境組成,只要函數能夠訪問外部詞法環境中的變量 即為閉包,廣義上說任何函數都可以是閉包.function cd(){ var a = 0; function add(){ a++; console.log(a); } add();} cd(); cd();問題 1 這個代碼中 add() 算不算是不是閉包?function cd(){ var a = 0; function add(){ a++; console.log(a); } return add(); }var test = cd(); test(); test();問題2 這段代碼 哪個是閉包? test是閉包?還是add是閉包?問題3 垃圾回收機制變量是怎么回收的? 是在當前的詞法環境中 這個變量就沒了嗎,不存在詞法環境的記錄項record里面?閉包使變量不被回收,如何理解?是不是由于閉包存在,導致這個變量在詞法環境中一直存在,可以給閉包拿來使用?
閉包如何定義以及垃圾回收的小問題
慕妹3242003
2018-12-20 12:15:05