ECMAScript 中的“一组 ECMAScript 执行上下文”和“执行上下文堆栈”有什么区别

马克西姆普

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

一个代理包括一组 ECMAScript 执行上下文、一个执行上下文堆栈、一个运行执行上下文、一个代理记录和一个执行线程。除执行线程外,代理的组成部分仅属于该代理。

是什么set of ECMAScript execution contexts什么区别之间set of ECMAScript execution contextsexecution context stack

罗根迷思

什么是 ECMAScript 执行上下文集?

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章