con*_*att 5 javascript scope ecma262 ecmascript-5
我正在阅读ECMA 262 5规范的执行上下文/词汇环境部分.它陈述如下:(强调添加)
词汇环境是一种规范类型,用于根据ECMAScript代码的词法嵌套结构定义标识符与特定变量和函数的关联.词汇环境由环境记录和外部词汇环境的可能空引用组成.通常,词汇环境与ECMAScript代码的某些特定语法结构相关联,例如TryStatement 的FunctionDeclaration,WithStatement或Catch子句,并且每次评估此类代码时都会创建新的词法环境.
我注意到它没有说明为函数表达式创建词法环境.是为函数表达式创建的词法环境,还是仅为函数声明创建的?我错过了什么吗?
编辑:我注意到函数代码将有自己的执行上下文,这就是为什么我也很困惑为什么在词法环境部分没有提到函数表达式.
是的,每个函数在被调用时都会获得自己的( \xc2\xa710.4.3 ) ( \xc2\xa713.2.1 )。该新上下文使用新的(由\xc2\xa710.2.2.2创建)初始化,该新上下文源自 函数的 - 即它在 ( \xc2\xa713中声明/“表达”ExecutionContextLexicalEnvironmentNewDeclarativeEnvironment[[Scope]]LexicalEnvironment。
正如@Pointy指出的,你偶然发现的句子并没有详尽地列出它们:“ \xe2\x80\xa6some [struct] such as\xe2\x80\xa6 ”。
\n| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |