执行上下文和返回语句

时间:2014-02-21 19:39:45

标签: javascript

在ECMASCript规范中说,在函数调用之后,我们为适当的函数创建了一个指定的执行上下文。因此,请考虑以下简单功能:

function(){
    var a='a';
    return 0;
}

在函数调用之后,我们将创建一个新的执行上下文。但是在执行return语句之后,我们已经返回到执行我们的函数的执行上下文。但是函数的执行上下文呢?甚至在我们离开之后是否存在?

2 个答案:

答案 0 :(得分:2)

当函数返回时,假设没有未完成的闭包引用,则销毁执行上下文。具体实现取决于何时实际释放内存。

答案 1 :(得分:0)

在javascript中我们有:

  • 全局代码/上下文 - 第一次执行代码的默认环境。
  • 功能代码/上下文 - 每当执行流程进入函数体时。
  • 评估代码/上下文 - 要在内部评估函数中执行的文本。

您可以拥有任意数量的函数上下文,并且每个函数调用都会创建一个新的上下文,从而创建一个私有作用域,其中无法从当前函数作用域外直接访问函数内部声明的任何内容。