首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript事件循环问题

javascript事件循环问题
EN

Stack Overflow用户
提问于 2011-06-25 06:13:36
回答 2查看 1.6K关注 0票数 11

我想知道事件循环在javascript中是如何工作的,我使用的是node.js,但我猜同样的问题也适用于浏览器。

我有一些异步调用(比方说setTimeout$.ajaxfs.readFile),然后事件循环执行callback

现在,当callback被执行时,场景后面会发生什么呢?它是否恢复它在调用异步内容时使用的堆栈?

在实践中,回调所使用的上下文/这是什么?它是如何工作的呢?

编辑:谢谢,我明白了。还有一个问题,事件循环如何“记住”回调的范围?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-25 06:59:32

JavaScript使用函数作用域,在所有JS环境中,作用域规则是相同的。正如Nican提到的,理解闭包对于了解当前范围中的可用内容非常重要。

基本上,一个函数“记住”了定义它的环境。因此,如果您在回调中使用内联匿名函数,那么它将访问它的父函数可用的所有变量以及作为参数传递给它的任何变量。

有关JavaScript中的闭包和作用域的一些资源:

  • 函数和函数作用域@ MDC
  • 关闭关于JavaScript闭包的书籍
  • 斯图尔特·兰里奇: JavaScript闭包的秘密,第1部分(视频)
  • 斯图尔特·兰里奇: JavaScript闭包的秘密,第2部分(视频)

斯托扬·斯特凡诺夫的“面向对象的JavaScript”一书在解释JavaScript中的作用域以及函数的词汇范围如何工作方面做得很好(参见第4章)。我会向任何认真对待JS编程的人推荐这本书。

票数 2
EN

Stack Overflow用户

发布于 2016-07-26 07:44:43

有一个很好的工具,名为Javascript Loupe,由Philip创建,它将帮助您理解javascript的调用堆栈/事件和循环/回调是如何与每个other.Write交互的--编辑器中的一些javascript代码并尝试运行它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6476219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档