第四章 执行环境 作用域 内存问题

执行环境 作用域

  每一个执行环境都有一个变量对象,执行环境中定义的所有变量和函数都保存在这个变量对象中。 

  每个函数都有一个自己的执行环境(也就是说每个函数都有一个变量对象) 

    当代码在  执行环境中  执行的时候,会创建变量对象作用域链  

   作用域链作用: 保证对执行环境有权访问的所有变量和函数的 有序访问

  作用域链的前端始终都是当前执行的代码所在环境的环境对象

  执行环境(执行上下文) 

    全局变量 和 函数环境变量  环境变量对应产生 变量对象  

  变量对象  

    VO对象  用于保存当前执行环境的变量对象 

  作用域

    相当于地盘 用于隔离变量 

  作用域链

    一个指针 用于指向  变量对象的一个指针

  当执行环境进入到一个函数时,产生一个变量对象 来存储变量 当进入到一个新的函数的时候 压栈 让当前执行环境的变量对象处于活跃状态  执行完毕之后 销毁变量对象  出栈

  

  闭包 在函数执行完毕 退出程序的时候 会有一个对父级 变量的一个引用 使其退出程序后 不能将其父级的变量对象销毁 造成内存泄漏 可以使其指向--->null 来消除引用

原文地址:https://www.cnblogs.com/liuxiankun/p/6783025.html