美文网首页
执行上下文

执行上下文

作者: bestCindy | 来源:发表于2022-02-22 17:16 被阅读0次

什么是执行上下文

执行上下文(Execution contexts)是指 函数调用 在执行栈中产生的变量对象

执行上下文栈

JavaScript 引擎创建了执行上下文栈(Execution context stack,ESC)来管理执行上下文

我们模拟执行上下文栈是一个数组:ECStack = []

当执行一个函数的时候,就会创建一个执行上下文,并且押入执行上下文栈,当函数执行完毕的时候,就会将函数的执行上下文从栈中弹出

举个例子

function fun3() {
    console.log('fun3');
}

function fun2() {
    fun3();
}

function fun1() {
    fun2();
}

fun1();

我们用伪代码模拟入栈和出栈的行为

ECStack.push(<fun1> functionContext);

ECStack.push(<fun2> functionContext)

ECStack.push(<fun3> functionContext)

// fun3 执行完毕
ECStack.pop();

// fun2 执行完毕
ECStack.pop();

// fun1 执行完毕
ECStack.pop();

作用域 和 上下文

作用域(scope)和上下文(context)是两个不同的概念。每一个函数调用都有一个与之相关的作用域和上下文

作用域是 function-based 而 上下文是 object-based

换句话说,作用域代表了当一个函数被调用时,变量的访问范围,并且对于每次调用时唯一的

上下文的值永远是 this 的值,是对当前拥有当前正在执行的代码的对象的引用

参考>
Understanding Scope and Context in JavaScript

相关文章

  • 再学 this

    执行上下文主要分为三种:全局执行上下文、函数执行上下文、eval执行上下文。而this和执行上下文是相互绑定的,所...

  • 对js执行上下文的理解

    执行上下文 执行上下文有三种: 全局执行上下文在执行全局代码的时候会创建全局上下文 函数执行上下文在执行函数代码的...

  • 深入浅出执行上下文、词法环境、变量环境

    执行上下文的概念 执行上下文:javascript 代码解析和执行时所在的环境。 执行上下文的类型 执行上下文分为...

  • js深度剖析 : 执行环境和作用域链

    执行上下文 execution context 又称执行上下文或者执行环境. 执行上下文是JavaScript中一...

  • js 代码的执行

    执行上下文 EC(Execution Context):代码自己执行所在的环境 全局执行上下文 函数执行上下文 ...

  • 2019-01-07变量和函数预解析,数组,定时器弹框,当天作业

    变量和函数预解析处理执行上下文代码分为两个阶段:进入执行上下文执行代码进入执行上下文:进入执行上下文,方法的变量对...

  • 执行上下文(个人笔记)

    本文参考:javaScript执行上下文和执行上下文栈一篇文章看懂JS执行上下文什么是执行上下文?什么是调用栈? ...

  • JavaScript执行上下文和执行栈

    执行上下文(Execution Context) 什么是执行上下文 简而言之,执行上下文就是当前JavaScrip...

  • JS 执行上下文

    理解执行上下文 执行上下文(Execution Context): 函数执行前进行的准备工作(也称执行上下文环境)...

  • JS中this的五种情况总结

    什么是this this不是执行上下文(EC才是执行上下文),this是执行主体 this,在全局上下文下,thi...

网友评论

      本文标题:执行上下文

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