执行环境 作用域
每一个执行环境都有一个变量对象,执行环境中定义的所有变量和函数都保存在这个变量对象中。
每个函数都有一个自己的执行环境(也就是说每个函数都有一个变量对象)
当代码在 执行环境中 执行的时候,会创建变量对象的作用域链
作用域链作用: 保证对执行环境有权访问的所有变量和函数的 有序访问
作用域链的前端始终都是当前执行的代码所在环境的环境对象
执行环境(执行上下文)
全局变量 和 函数环境变量 环境变量对应产生 变量对象
变量对象
VO对象 用于保存当前执行环境的变量对象
作用域
相当于地盘 用于隔离变量
作用域链
一个指针 用于指向 变量对象的一个指针
当执行环境进入到一个函数时,产生一个变量对象 来存储变量 当进入到一个新的函数的时候 压栈 让当前执行环境的变量对象处于活跃状态 执行完毕之后 销毁变量对象 出栈
闭包 在函数执行完毕 退出程序的时候 会有一个对父级 变量的一个引用 使其退出程序后 不能将其父级的变量对象销毁 造成内存泄漏 可以使其指向--->null 来消除引用