任何人都可以解释闭包和匿名函数之间的区别吗?

Sti*_*MAN 11 javascript

我是Javascript的新手.我理解匿名函数的概念 - 但是闭包似乎不太清楚.两者之间的相似性(至少在我看来)是令人困惑的.

有人可以解释这个区别吗?(最好是使用一些代码片段来说明要点更清楚).

Mat*_*ias 7

重要的区别是闭包捕获了它定义的范围.

换句话说,闭包可以访问变量及其状态,即使它们属于闭包的父作用域(例如,闭包创建的函数).这允许闭包捕获并"传输"程序周围的应用程序状态.

匿名函数不能这样做; 它的范围仅限于在其体内和特征(即其参数)内定义的变量.

编辑:只是为了澄清:在JavaScript中,特别不清楚,因为没有语言结构称为闭包.你仍然会使用匿名函数.我只是指概念上的差异.