ECMAScript 规范详细介绍了当控制进入函数内函数的执行上下文时会发生什么。
function foo() {
function bar() {
}
bar(); // Control will be given to the bar function. Details specified by spec
}
还有一个解释当控制进入全局代码时会发生什么。
<script>
// Entering global code! Details specified by spec
</script>
但是,没有具体说明在为全局代码中定义的函数输入控制权时会发生什么。
<script>
function foo() {
}
foo(); // Calling a function defined in the global environment...not specified by spec
</script>
编辑:这对我很重要的原因是因为我很好奇全局代码调用的函数的内部 [[Scope]] 属性是什么。我假设它将是全局执行上下文的词法环境,但在规范中没有指定这一点。