ECMAScript中的“ ECMAScript执行上下文集”和“执行上下文堆栈”之间有什么区别

问题描述 投票:0回答:1

在ecma262中,我们可以找到下一部分:

一个代理包含一组ECMAScript执行上下文,一个执行上下文堆栈,正在运行的执行上下文,代理记录,和一个执行线程。除了执行线程,代理的组成部分完全属于该代理。

set of ECMAScript execution contexts是什么? set of ECMAScript execution contextsexecution context stack有什么区别?

ecmascript-6 ecmascript-7 ecmascript-next
1个回答
0
投票

什么是ECMAScript执行上下文集?

这实际上意味着“存在的所有执行上下文”。

以及ECMAScript执行上下文集和执行上下文堆栈之间有什么区别?

堆栈明确是在执行代码时创建的执行上下文的堆栈。在整个规范中,随着函数的进入和退出,执行上下文栈中的条目会在其中推入和弹出。

作为在哪里可以看到这种差异的示例,将在异步函数最初运行时为其创建一个新的执行上下文,然后在该函数返回或等待某些东西时将其从堆栈中弹出。弹出后,它不再是堆栈的一部分,并且异步功能已挂起,但只要该功能正在等待其他东西,并且仍然可以存在,则该异步功能仍将存在,因此可以稍后将其推回到堆栈上,因此仍将是一部分“ ECMAScript执行上下文集”。

© www.soinside.com 2019 - 2024. All rights reserved.