我正在阅读ECMA 262 5 specification的执行上下文/词汇环境部分。它指出了以下内容:(强调增加)函数表达式是否有其自己的作用域/词法环境
词法环境是一种规范类型,用于基于ECMAScript代码的词法嵌套结构来定义标识符与特定变量和函数的关联。词法环境由一个环境记录和一个可能为空的外部词法环境引用组成。通常,词法环境与某些ECMAScript代码的特定语法结构相关联,例如函数声明,WithStatement或TryStatement的Catch子句,并且每次评估此类代码时都会创建一个新的词法环境。
我注意到它没有提到为函数表达式创建一个词法环境。是为函数表达式创建的词法环境,还是仅为函数声明创建的环境?我错过了什么吗?
编辑:我注意到,功能码将有its own execution context,这就是为什么我也困惑,为什么函数表达式没有在词法环境一节中提到。
因为例子列表以“such as”开头,所以我不认为它是详尽无遗的。 – Pointy 2013-02-22 22:41:11
[第13节](http://www.ecma-international.org/ecma-262/5.1/#sec-13)似乎表明,仅为具有名称的函数表达式创建新的词汇环境(而不是为匿名函数表达式或函数声明)。但我必须错误地解释它。 – 2013-02-22 23:06:33