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

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

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

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

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

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

  • 相关阅读:
    imagemagick-图片
    selenium-嘿
    centos命令行连接无线网络
    centos7安装桌面合盖不休眠
    mysql执行命令:ERROR 1820 (HY000): You must reset your password
    编码规范 C++
    Docker使用总结
    JAVA使用总结
    VS IDE 相关
    编程网站总结
  • 原文地址:https://www.cnblogs.com/yeming980912/p/10928207.html
Copyright © 2011-2022 走看看