美文网首页
执行上下文

执行上下文

作者: Artifacts | 来源:发表于2019-08-03 22:34 被阅读0次

    许多开发人员经常混淆作用域(scope) 和 上下文(context),很多误解为它们是相同的概念。但事实并非如此。作用域(scope)我们上面已经讨论过了,而上下文(context)是用来指定代码某些特定部分中this的值。作用域(scope) 是指变量的可访问性,上下文(context)是指this在同一作用域内的值。我们也可以使用函数方法来改变上下文,将在稍后讨论。 在全局作用域(scope)中上下文中始终是Window对象。(取决于JavaScript 的宿主换环境,在浏览器中在全局作用域(scope)中上下文中始终是Window对象。在Node.js中在全局作用域(scope)中上下文中始终是Global对象)

    1.1 概念

    当函数执行时,会创建一个称为执行上下文的内部对象(可理解为作用域)。一个执行上下文定义了一个函数执行时的环境。

    二、产生执行上下文的两个阶段
    (1)在JavaScript解释器内部,每次调用执行上下文,分为两个阶段,①创建阶段 和 ②激活/代码执行阶段。

    2.1 创建阶段

    第一阶段是创建阶段,(当函数被调用,但未执行任何其内部代码之前)。在创建阶段主要做三件事:
    (1)创建作用域链(Scope Chain)。
    (2)创建变量对象(函数的形参、函数声明、变量声明)。
    (3)求”this“的值。

    相关文章

      网友评论

          本文标题:执行上下文

          本文链接:https://www.haomeiwen.com/subject/izisdctx.html