Какая разница между «набором контекстов выполнения ECMAScript» и «стеком контекстов выполнения» в ECMAScript - PullRequest
0 голосов
/ 27 мая 2020

В ecma262 мы можем найти следующую часть:

Агент состоит из набора контекстов выполнения ECMAScript, стека контекстов выполнения, текущего контекста выполнения, записи агента и выполняемого потока. За исключением исполняемого потока, компоненты агента принадлежат исключительно этому агенту.

Что такое set of ECMAScript execution contexts? А какая разница между set of ECMAScript execution contexts и execution context stack?

1 Ответ

1 голос
/ 27 мая 2020

Что такое набор контекстов выполнения ECMAScript?

Это означает, по сути, «все существующие контексты выполнения».

И какая разница между набором Контексты выполнения ECMAScript и стек контекстов выполнения?

Стек явно является стеком контекстов выполнения, которые были созданы по мере выполнения кода. В стеке контекста выполнения есть записи, выталкиваемые и выталкиваемые из него во многих местах на протяжении SP c по мере того, как функции вводятся и выходят.

В качестве примера того, где это различие может показаться, новый контекст выполнения будет создается для функции asyn c при ее первоначальном запуске, а затем извлекается из стека, когда функция что-то возвращает или ожидает. После того, как он выталкивается, он больше не является частью стека, и функция asyn c приостанавливается, но все еще будет существовать, пока функция ожидает чего-то еще и, таким образом, может быть помещена обратно в стек позже, поэтому будет по-прежнему быть частью «набора контекстов выполнения ECMAScript».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...