(2)、如果兩個對象互相引用,而不再被第 3者所引用,那麼這兩個互相引用的對象也會被回收。
使用閉包的好處
那麼使用閉包有什麼好處呢?使用閉包的好處是:
1.希望一個變量長期駐紮在內存中2.避免全局變量的汙染3.私有成員的存在
一、全局變量的累加
二、局部變量
那麼怎麼才能做到變量a既是局部變量又可以累加呢?
三、局部變量的累加
在js中我們可以通過關鍵字 function來聲明一個函數:
我們也可以通過一個"()"來將這個聲明變成一個表達式:
四、模塊化代碼,減少全局變量的汙染
五、私有成員的存在
六.使用匿名函數實現累加
過度使用閉包會導致性能的下降。函數里放匿名函數,則產生了閉包
七、在循環中直接找到對應元素的索引
八、使用閉包改寫上面代碼
九.內存洩露問題
由於 IE的 js對象和 DOM對象使用不同的垃圾收集方法,因此閉包在 IE中會導致內存洩露問題,也就是無法銷燬駐留在內存中的元素
10.新增
很多初學者學了閉包後,可能也不懂到底在哪裡才有用到,甚至不懂閉包到底有啥用。 其實你寫的每一個js函數都是閉包,一個js函數的頂層作用域就是window對象,js的執行環境本身就是一個scope(瀏覽器的window/node的global),我們通常稱之為全局作用域。每個函數,不論多深,都可以認為是全局scope的子作用域,可以理解為閉包。
閱讀更多 JavaScript前端 的文章
關鍵字: 技術 編程語言 JavaScript