闭包是干嘛的
當(dāng)一個javascript函數(shù)返回時,js解析器會保留它作用域內(nèi)的所有變量和函數(shù)。 注意兩個 返回,和作用域。之前已經(jīng)寫了作用域鏈從內(nèi)到外找變量的過程。但是這個變量第一次使用后,我還想再次使用,以這個變量為基礎(chǔ),就需要閉包了。 [crayon-50361f9ff2957/] [crayon-50361f9ff2d3a/] js的垃圾回收機制同樣是對不再被其他對象引用的變量或方法進行回收,但因為js的引用不僅可指向變量,也可指向函數(shù),在上述js代碼中, 只要指向函數(shù)c 的引用d 還沒有被設(shè)為null,那么處在函數(shù)c 作用域內(nèi)的局部變量都不會被js垃圾回收器回收。 局部變量 b 被認為處在一個安全且相對封閉的“閉包”環(huán)境中,訪問它的唯一方法是通過調(diào)用處在同一作用域下的c 函數(shù)來進行。 直到c?函數(shù)不再被其他對象引用,其作用域內(nèi)的變量和函數(shù)才能被釋放回收。 即c = null 根據(jù)之前的例子,我們可以用閉包模擬函數(shù)的私有變量 [crayon-50361f9ff3121/] [crayon-50361f9ff3508/] [crayon-50361f9ff38f1/] [crayon-50361f9ff3cd9/] ?本文地址:http://99jty.com/?p=427 ?訂閱本站:http://winysky.com/feed/?當(dāng)你從RSS閱覽器里看到這篇文章時,還沒有評論,還不趕緊過來搶沙發(fā)?
轉(zhuǎn)載于:https://www.cnblogs.com/99f2e/archive/2012/03/07/2653126.html
總結(jié)
- 上一篇: XAF Study Recources
- 下一篇: form表单提交时,同一个名字的inpu