好吧,这有点儿迂腐的问题,但我想确保我正确理解定义。使用封闭的绰号来形容匿名函数可以在局部范围内电梯变量(无论他们实际上做还是不做)或者只有当他们做电梯变量在局部范围内?由于它可以做什么或因为它会关闭
换句话说,如果一个匿名函数有能力解除变量在本地范围内(因为语言提供了这种能力),但不,它仍然被认为是封闭?
我的理解是,只有当局部变量被解除时它才是闭包。但是一个匿名函数不会(即使它可以)不是闭包。所以并非所有匿名函数都是闭包,但所有闭包都是匿名函数。
再一次,很抱歉,这些事情啃着我。 :)
只要你问,而不是教,你对我来说并不迂腐^^(http://dictionary.reference.com/browse/pedantic)。这个问题也令我感兴趣! – 2010-11-05 05:23:36
另一种看待它的方法是,在具有闭包的语言中,为了统一起见,不提升局部变量的匿名函数可能仍然以实际闭包的相同方式在运行时表示。但是现在你提到它了,是的,人们倾向于只在存在一些变量捕获时才使用“闭包”。 – 2010-11-05 05:35:23