gpt4 book ai didi

javascript事件循环问题

转载 作者:IT老高 更新时间:2023-10-28 23:17:31 26 4
gpt4 key购买 nike

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

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

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

实际上,回调所处的上下文/this 是什么?它是如何工作的?

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

最佳答案

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

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

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

Stoyan Stefanov 的书面向对象的 JavaScript 很好地解释了 JavaScript 中的作用域以及 lexical scoping 的作用。函数的工作(见第 4 章)。我会把这本书推荐给任何认真对待 JS 编程的人。

关于javascript事件循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com