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

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

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

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

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

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

  • 相关阅读:
    hdu 2044 一只小蜜蜂
    HDU 2041 超级楼梯
    卡特兰数
    hdu 1267 下沙的沙子有几粒?(二维递推题)
    大数加法、乘法
    学习时仪式感太强是不是不太好
    php记日志
    cygwin安装apt-cyg
    存储过程死循环之后的清理
    linux的计划任务crontab
  • 原文地址:https://www.cnblogs.com/yeming980912/p/10928207.html
Copyright © 2011-2022 走看看