zoukankan      html  css  js  c++  java
  • 第四章 执行环境 作用域 内存问题

    执行环境 作用域

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

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

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

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

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

      执行环境(执行上下文) 

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

      变量对象  

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

      作用域

        相当于地盘 用于隔离变量 

      作用域链

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

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

      

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

  • 相关阅读:
    简单的C语言编译器--语法分析器
    简单的C语言编译器--词法分析器
    简单的C语言编译器--概述
    最短路径算法
    拓扑排序和关键路径
    图的连通性
    最小生成树
    图的搜索
    gcc O2优化选项对内嵌汇编以及函数递归调用的影响
    gcc 在c代码中内嵌汇编调用c函数: 只是证明曾经我来过
  • 原文地址:https://www.cnblogs.com/liuxiankun/p/6783025.html
Copyright © 2011-2022 走看看