在上一节了解了 JavaScript 执行中最粗粒度的任务:传给引擎执行的代码段。并且,我们还根据“由 JavaScript 引擎发起” 还是“由宿主发起”,分成了宏观任务和微观任务,接下来继续学习更细的执行粒度。
- 闭包
- 作用域链
- 执行上下文
- this 值
实际上,尽管这里的几个词语表示了不同的术语,但他们所指向的几乎是同一部分知识,那就是函数执行过程相关的内容;看下图(来自winter老师 ):
这里除了要理解函数执行过程的知识,对理清这些知识的概念也非常重要;所以先来看看有点儿复杂的概念:闭包。