我问a question about callbacks并到达另一个问题(见评论)。 闭包与回调有什么不同?闭包与回调有什么不同?
回答
查看此说明中的介绍:http://jibbering.com/faq/faq_notes/closures.html。它可以帮助你更好地理解闭包如何与功能相关联。
下面是一组闭合的例子:http://www.javascriptkit.com/javatutors/closures2.shtml
基本上,回调就像一个函数指针。使它成为闭包的位是该函数在它所在的上下文中访问任何东西的时候,比如它之外的变量。当发生这种情况时,函数将使用变量的当前值(而不是复制它们)。参见实施例4。
啊,是的,这清除了弗雷德先生。谢谢! :) – leeand00 2009-03-05 19:42:10
有封闭here的一个很好的定义:
A“封闭”是表达 (典型的函数)可以具有 游离与结合这些变量 一个 环境一起变量(即“关闭“的表达)。
实际上,这意味着它是一个具有一些隐藏变量的函数。
回调是一个更高层次的想法。一般来说,它是一个被传递的函数,意图在以后被调用。在JavaScript中,闭包通常用作回调。
我没有看到两者是如何相关的?封闭使当地某些州的某些部分成为某种功能,将其视为经过参考。
回调意味着通知您某些更改并重定向程序流程。闭包可以修改本地状态,但你永远不会得到处理器时间来处理这个问题,就像你用回调一样。
有人告诉我这两个在这里相关:http:// stackoverflow。COM /问题/ 615642 /的确,这种配合,你的定义 - 的 - 一个回调/ 615752#615752 – leeand00 2009-03-05 18:43:35
取决于上下文变量aka绑定变量(==对象状态)的回调将是闭包。它将是一个纯函数,否则,它只需要自由变量(==参数)。
简而言之:使用上下文变量的回调是闭包。
- 1. local()与R中的其他闭包方法有什么不同?
- 2. Comparator与包装类有什么不同?
- 3. 休息与回归有什么不同?
- 4. jQuery。 queue()与使用回调函数有什么不同?
- 5. 在XHR.onreadystatechange回调中,readyState与“4”(完整)有什么不同?
- 6. 什么是回调?它与更新面板控件有什么不同?
- 7. collection.find与回调和不回调之间有什么区别?
- 8. 什么是具体调用,它与Reflection有什么不同?
- 9. “((...))”与“(...)”有什么不同?
- 10. 为什么实例变量在闭包内有不同的值?
- 11. 两个闭包之间有什么不同?
- 12. 递归闭包返回什么?
- 13. async w/await与同步调用有什么不同?
- 14. 带有Javascript回调的闭包
- 15. App.OnSearchActivated与App.OnActivated与ActivationKind.Search有什么不同?
- 16. 什么是不同的回调vs新的AsyncCallback(回调)?
- 17. 回调中的闭包
- 18. Javascript - 为什么返回封闭与IIFE?
- 19. python鸡蛋与常规包装有什么不同?
- 20. 观察者和回调之间有什么大不同?
- 21. 处理函数和回调函数有什么不同?
- 22. 返回值时`each`与`for-loop`有什么不同?
- 23. 这与刚刚返回新的System.currentTimeMillis()有什么不同吗?
- 24. 斯威夫特。为什么dataTaskWithRequest不会调用闭包?
- 25. $()与重定向有什么不同?
- 26. Web服务与api有什么不同?
- 27. listview与listactivity有什么不同
- 28. 与ramda.js代码有什么不同?
- 29. This.value与值,有什么不同?
- 30. Object.prototype.toString.apply(value)与value.toString()有什么不同?
Ref:http://stackoverflow.com/questions/2070275/javascript-closures-and-callbacks – 2016-10-26 02:50:52