zoukankan      html  css  js  c++  java
  • JS作用域和作用域链

    作用域(scope):一个变量的可用范围

    两种:全局作用域,任何地方都可以访问,反复使用

       函数作用域,仅在函数内部可访问,不能重复使用

    函数的生命周期
      1、开始执行前:
        创建执行环境栈(ECS数组):临时保存正在执行的函数的环境
        向执行环境栈中加入第一个默认函数main()
        创建全局作用域对象window
    2、定义函数时:
        创建函数对象,封装定义
        声明函数名变量,引用函数对象
        函数对象的scope属性引用回,创建函数时的作用域
    3、调用函数时:
        ESC中加入一个新的元素(执行环境),记录新函数调用
        创建一个活动对象,保存本次函数调用用到的局部变量
        ESC新执行环境元素,引用活动对象
        活动对象中的parent属性引用函数的scope指向的父级作用域对象
        在执行过程中:优先使用活动对象中的局部变量
        局部中没有,才延parent向父级作用域找
    4、调用函数后:
        执行环境栈中本次函数的执行环境出栈
        导致活动对象被释放 导致局部变量一同释放

    作用域链:由多级作用域连续引用形成的链式结果
        掌管一切变量的使用顺序: 先在局部找,没有,就延作用域向父级作用域找

  • 相关阅读:
    C++并发编程实战---阅读笔记
    设计模式---命令模式
    图解HTTP(六)HTTP首部
    HTTP 状态码
    使用VS2012调试Dump文件
    如何设置C++崩溃时生成Dump文件
    boost::asio::io_service类
    boost::asio 同步&异步例子
    boost::bind
    c++并发编程之原子操作的实现原理
  • 原文地址:https://www.cnblogs.com/yeming980912/p/10928207.html
Copyright © 2011-2022 走看看