gpt4 book ai didi

javascript - 函数表达式是否有自己的作用域/词法环境

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:40 25 4
gpt4 key购买 nike

我正在阅读 ECMA 262 5 specification 的执行上下文/词法环境部分.它声明如下:(添加了强调)

A Lexical Environment is a specification type used to define the association of Identifiers to specific variables and functions based upon the lexical nesting structure of ECMAScript code. A Lexical Environment consists of an Environment Record and a possibly null reference to an outer Lexical Environment. Usually a Lexical Environment is associated with some specific syntactic structure of ECMAScript code such as a FunctionDeclaration, a WithStatement, or a Catch clause of a TryStatement and a new Lexical Environment is created each time such code is evaluated.

我注意到它没有提到为函数表达式创建词法环境。词法环境是为函数表达式创建的,还是仅为函数声明创建的?我错过了什么吗?

编辑:我注意到函数代码将有 its own execution context ,这就是为什么我也很困惑为什么词法环境部分没有提到函数表达式。

最佳答案

是的,每个 函数在被调用时都会获得 (§10.4.3) 自己的 ExecutionContext (§13.2.1)。该新上下文使用新的 LexicalEnvironment(由 NewDeclarativeEnvironment 创建,§10.2.2.2)初始化,派生自 [[Scope]]。函数的 - 即 LexicalEnvironment 它在 ( §13) 中声明/“表达”。

正如@Pointy 所指出的,您偶然发现的句子并没有详尽列出它们:“……一些[结构],例如……”。

关于javascript - 函数表达式是否有自己的作用域/词法环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034389/

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