• JavaScript作用域


    什么是作用域?
      一个变量可用的范围
    1、全局作用域window:全局变量
      在程序的任何位置都能反复使用===》全局污染
    2、函数作用域:局部变量
      局部变量(AO:Action Object):仅在函数内可用
    函数的生命周期:
      1)开始执行前(生命提前阶段)
      创建执行环境栈(数组):临时保存正在执行的函数执行环境
      向执行环境中添加一个默认程序main(),该方法创建出一个全局作用域的对象window

      2)定义函数时

          创建函数对象,封装函数的定义

          声明函数变量,引用了函数对象,函数对象的scope属性引用,创建函数时的作用域

      3)调用函数时
         在ECS中加入一个新的元素(执行环境)记录新函数的调用
        创建一个活动对象,保存本次调用用到的局部变量(函数的参数,在函数体内使用var关键字声明的数据)
        ESC中的新执行环境元素 ,引用活动对象
         活动对象中的parent属性引用函数的scope指向的父级作用域对象

      4)调用函数后
         执行环境栈中本次函数的执行环境出栈
         导致活动对象被释放,导致局变量一同释放

     

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

     

  • 相关阅读:
    IOS UITextView自适应高度
    listview、gradview滚动到最后时,滑动至顶部
    iOS- 详解文本属性Attributes
    initializer element is not a compile-time constant
    国内外例子源码地址
    iOS开发所有KeyboardType与图片对应展示
    去掉xcode编译warning:ld: warning: directory not found for option '-L
    IQKeyboardManager使用方法
    Mysql 内部默认排序
    Hadoop 集群的一些问题
  • 原文地址:https://www.cnblogs.com/Godfather-twq/p/11294802.html
Copyright © 2020-2023  润新知