首先,閉包是一個(gè)函數(shù)妨猩,在另一個(gè)函數(shù)內(nèi)部(嵌套函數(shù)結(jié)構(gòu))潜叛。
其次,這個(gè)函數(shù)不僅能訪問自己的作用域壶硅,更為關(guān)鍵的是它還能訪問其父級函數(shù)的作用域威兜。
換句話說,如果一個(gè)函數(shù)能訪問其他函數(shù)作用域中的變量庐椒,那么這個(gè)函數(shù)就叫做“閉包”椒舵。
如何創(chuàng)建閉包?
只要在一個(gè)函數(shù)中再定義一個(gè)函數(shù)约谈,這個(gè)內(nèi)部函數(shù)就是一個(gè)閉包笔宿。、
作用:
讓外部訪問函數(shù)內(nèi)部變量成為可能棱诱。(外部函數(shù)可以認(rèn)為是閉包的叔叔泼橘,與父級函數(shù)同輩等其他調(diào)用了父級函數(shù)的函數(shù))
?可以避免使用全局變量,防止全局變量污染
缺點(diǎn):
局部變量會常駐在內(nèi)存中(每次調(diào)用時(shí)變量都在內(nèi)存中军俊,會造成空間資源的浪費(fèi))
?會造成內(nèi)存泄漏(有一塊內(nèi)存空間被長期占用侥加,而不被釋放)