欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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
分析闭包代码:
JS闭包的理解

相关标签: javascript js