当进入一个执行上下文时,执行上下文也会关联一个作用域链。
- 作用域链是一个对象列表,用于变量标识符的求值。
- 当进入一个执行上下文时,这个作用域链被创建,并且根据代码的类型,添加一系列的对象。
ECMA文档:每个执行上下文都与一个作用域链相关,作用域链是一个对象列表,这些对象在评估一个标识符时被搜索,当控制权进入一个执行上下文时,根据代码的类型,一个作用域链被创建并填充初始的对象集。
复杂代码的执行过程的内存图
我们来看下面一部分代码:
var height = 1.88
function other(){
var age = 18;
function inner(){
var name = "name";
debugger;
console.log(name,age,height);
}
return inner;
}
var fn = other();
fn();全局执行上下文内存图

执行到other函数

执行完other函数,并返回inner地址

执行inner函数(作用域链访问)

inner执行完后效果图

感谢大家观看!
什么是作用域链以及作用域链在javascript中的作用是什么? - 程序员鸡皮-前端程序员|PHP程序员|全栈程序员
游客
2026-03-31 21:29
回复
[...]回顾如何定义作用域链如何定义'作用域'?说明不同类型的作用域作用域链Scope Chain是JavaScript中的一个基本概念,它属于确定当前执行代码的上下文变量的查找和访问机制。在作用域的构建基于词法作用域的解构,即变量和函数的可见性由它们在源代码中的位置决定。在JavaScript中,每个执行上下文如函数执行上下文都绑有一个与之关联的作用域链。这个作用域就是一个包含多个环境记录Environ[...]