闭包与回调有什么不同?

lee*_*d00 24 javascript closures callback

我问了一个关于回调的问题并得出了另一个问题(见评论).闭包与回调有什么不同?

egl*_*ius 19

请查看以下内容:http://jibbering.com/faq/faq_notes/closures.html.它可以帮助您更好地理解闭包与函数的关系.

这是一组闭包示例:http://www.javascriptkit.com/javatutors/closures2.shtml

基本上,回调就像一个函数指针.使它成为闭包的位是当该函数访问它所在的上下文中的任何内容时,就像它之外的变量一样.当发生这种情况时,该函数将使用变量的当前值(而不是复制它们).见例4.


gim*_*mel 11

不同的定义:

回调 -

回调是可执行代码,作为参数传递给其他代码.

关闭 -

闭包是在包含一个或多个绑定变量的环境中计算的函数.调用时,该函数可以访问这些变量.


Gre*_*icz 9

简单来说:使用上下文变量的回调是一个闭包。


Dan*_*Lew 5

有倒闭的一个很好的定义,在这里

“闭包”是一个表达式(通常是一个函数),它可以具有自由变量以及绑定这些变量(“关闭”表达式)的环境。

实际上,这意味着它是一个具有一些隐藏变量的函数。

回调是一个更高层次的想法。通常它是一个传递的函数,目的是在以后被调用。在 JavaScript 中,闭包通常用作回调。