执行上下文 execution context
概念:
评估和执行 JavaScript 代码的环境的抽象概念。每当 Javascript 代码在运行的时候,它都是在执行上下文中运行。
类型:
- 全局执行上下文
当 JavaScript 开始要解释执行代码的时候,最先遇到的就是全局代码。一个程序中只会有一个全局执行上下文。 - 函数执行上下文
每当一个函数被调用时, 都会为该函数创建一个新的上下文。每个函数都有它自己的执行上下文,不过是在函数被调用时创建的。
(eval不建议使用不作介绍)
每个执行上下文,都有三个重要属性:
- 变量对象(Variable object,VO)
- 作用域链(Scope chain)
- this
如何管理创建的多个执行上下文?
JavaScript 引擎创建了执行上下文栈(Execution context stack,ECS)来管理执行上下文。它一种拥有 LIFO(后进先出)数据结构的栈,被用来存储代码运行时创建的所有执行上下文。
学习资料:
https://juejin.im/post/5ba32171f265da0ab719a6d7
https://github.com/mqyqingfeng/Blog/issues/4
网友评论