好吧,這有點兒迂腐的問題,但我想確保我正確理解定義。使用封閉的綽號來形容匿名函數可以在局部範圍內電梯變量(無論他們實際上做還是不做)或者只有當他們做電梯變量在局部範圍內?由於它可以做什麼或因爲它會關閉
換句話說,如果一個匿名函數有能力解除變量在本地範圍內(因爲語言提供了這種能力),但不,它仍然被認爲是封閉?
我的理解是,只有當局部變量被解除時它纔是閉包。但是一個匿名函數不會(即使它可以)不是閉包。所以並非所有匿名函數都是閉包,但所有閉包都是匿名函數。
再一次,很抱歉,這些事情啃着我。 :)
只要你問,而不是教,你對我來說並不迂腐^^(http://dictionary.reference.com/browse/pedantic)。這個問題也令我感興趣! – 2010-11-05 05:23:36
另一種看待它的方法是,在具有閉包的語言中,爲了統一起見,不提升局部變量的匿名函數可能仍然以實際閉包的相同方式在運行時表示。但是現在你提到它了,是的,人們傾向於只在存在一些變量捕獲時才使用「閉包」。 – 2010-11-05 05:35:23