JS闭包的理解
程序员文章站
2022-05-07 18:55:27
...
function fn(){
var y = 999;
return function(){
console.log(y); // 999
return y;
}
}
var f = fn();
f(); // 999
-
ECStack
Execution Context Stack 执行环境栈 -
EC
执行环境(执行上下文)
-VO
Varibale Object 变量对象
-AO
Activation Object 活动对象(函数的执行环境叫AO,是VO的一个分支)
首先需要明白几个概念:
1. 代码执行会在ECStack
中进行
2. 函数创建时会在堆中开辟一块内存,函数名指向这块内存地址
3. 函数执行时会产生一个执行上下文(EC(函数名)
),执行上下文中保存着变量AO
分析闭包代码: