2009-03-05 57 views

回答

12

查看此说明中的介绍:http://jibbering.com/faq/faq_notes/closures.html。它可以帮助你更好地理解闭包如何与功能相关联。

下面是一组闭合的例子:http://www.javascriptkit.com/javatutors/closures2.shtml

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

+0

啊,是的,这清除了弗雷德先生。谢谢! :) – leeand00 2009-03-05 19:42:10

4

有封闭here的一个很好的定义:

A“封闭”是表达 (典型的函数)可以具有 游离与结合这些变量 一个 环境一起变量(即“关闭“的表达)。

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

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

7

不同定义:

Callback -

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

Closure -

的闭合是在含有一种或多种结合的变量的环境中进行评价的功能。被调用时,函数可以访问这些变量。

-1

我没有看到两者是如何相关的?封闭使当地某些州的某些部分成为某种功能,将其视为经过参考。

回调意味着通知您某些更改并重定向程序流程。闭包可以修改本地状态,但你永远不会得到处理器时间来处理这个问题,就像你用回调一样。

+0

有人告诉我这两个在这里相关:http:// stackoverflow。COM /问题/ 615642 /的确,这种配合,你的定义 - 的 - 一个回调/ 615752#615752 – leeand00 2009-03-05 18:43:35

1

取决于上下文变量aka绑定变量(==对象状态)的回调将是闭包。它将是一个纯函数,否则,它只需要自由变量(==参数)。

3

简而言之:使用上下文变量的回调是闭包。

相关问题