我问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. 在XHR.onreadystatechange回调中,readyState与“4”(完整)有什么不同?
- 2. 什么是回调?它与更新面板控件有什么不同?
- 3. collection.find与回调和不回调之间有什么区别?
- 4. 什么是具体调用,它与Reflection有什么不同?
- 5. Data.Void.absurd与⊥有什么不同?
- 6. “((...))”与“(...)”有什么不同?
- 7. 两个闭包之间有什么不同?
- 8. 递归闭包返回什么?
- 9. 带有Javascript回调的闭包
- 10. 什么是不同的回调vs新的AsyncCallback(回调)?
- 11. Javascript - 为什么返回封闭与IIFE?
- 12. python鸡蛋与常规包装有什么不同?
- 13. 处理函数和回调函数有什么不同?
- 14. 观察者和回调之间有什么大不同?
- 15. monad和闭包有什么区别?
- 16. 这与刚刚返回新的System.currentTimeMillis()有什么不同吗?
- 17. 斯威夫特。为什么dataTaskWithRequest不会调用闭包?
- 18. 与ramda.js代码有什么不同?
- 19. Python - 信号与pubsub有什么不同?
- 20. ArrayListMultimap与LinkedListMultimap有什么不同?
- 21. 与%.1f和%.01f有什么不同?
- 22. subprocess.call与os.system有什么不同
- 23. SystemVerilog 0与'0'有什么不同?
- 24. listview与listactivity有什么不同
- 25. Erlang与OOP对象有什么不同?
- 26. wait_for_completion与wakeup_interruptible有什么不同
- 27. 网页与aspnet表有什么不同?
- 28. libspe与libspe2?有什么不同?
- 29. CurrentControlSet与ControlSet001和ControlSet002有什么不同?
- 30. AWS与Lightsail有什么不同?
Ref:http://stackoverflow.com/questions/2070275/javascript-closures-and-callbacks – 2016-10-26 02:50:52