JS中的执行上下文
在这篇文章中,我将深入探讨JavaScript中一个最基本的部分,即Execution Context。 在本文结束时,您应该更清楚地知道解释器是怎么工作的,为什么某些函数/变量在声明之前就可以使用以及它们的值是如何确定的。 一:什么是执行上下文? 当JavaScript代码运行的时候,确定它运行所在的环境是非常重要的。运行环境由下面三种不同的代码类型确定 全局代码(Global Code):代码首次执行时候的默认环境 函数代码(Function Code):每当执行流程进入到一个函数体内部的时候 Eval代码(Eval Code):当eval函数内部的文本执行的时候 您可以在网上找到大量关于 scope 的参考资料。为了更易于理解,我们将execution context简单视为运行当前代码的environment/scope。好了,话不多说,先让我们看个例子,其中包含了global context和function/local context 代码。 Example 1 在上图中,我们有1个全局上下文(Global Context),使用紫色边框表示;有3个不同的函数上下文(Function Context)由绿色,蓝色,和橙色边框表示。注意!全局上下文有且只有一个,程序中其他任意的上下文都可以访问全局上下文。 你可以拥有任意数量的函数上下文。每一次 函数调用