zoukankan      html  css  js  c++  java
  • js_执行环境及作用域

    执行环境

    执行环境的定义

    • 执行环境(execution context)的作用是定义了变量或函数的访问数据的范围.每个执行环境都有一个变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中.
      (相当于宇宙-银河系-太阳系-九大行星的关系,层层包裹)

    全局执行环境

    • 全局执行环境是最外层的一个执行环境.在web浏览器中,全局执行环境被认为是window对象.因此所有的全局变量和函数都保存在全局执行环境的变量对象中.
      (全局执行环境就相当于宇宙)

    函数的执行环境

    • 每个函数都有属于自己的执行环境.执行流进入一个函数时,函数的环境被推入一个环境栈里,当函数执行完毕时,函数的执行环境被从环境栈中推出,控制权回到函数执行环境被推入栈之前的执行环境手中.

    代码在环境中执行的过程

    • 1.执行流进入一个环境变量中时,首先会针对当前执行环境创建一个作用域链(scope chain,用途是对处于该执行环境中所能访问到的变量和函数排序,以便于有序访问 ),用以保存变量对象.
    • 2.在作用链的前端写入当前执行环境的下的变量对象.(如果是函数,则将其活动对象(activation object)作为变量对象,且活动对象在最开始时只包含一个变量,即arguments对象).
    • 3.在作用域链中写入父执行环境的变量对象,一直延伸到全局执行环境.作用域链的最后一个变量对象即全局作用域变量对象.
    • 4.标识符解析:从作用域链的前端开始(即当前执行环境的变量对象)查找,一直查找到最后的变量对象.

    一篇关于js执行环境的好文

  • 相关阅读:
    BZOJ3781 小B的询问
    BZOJ3757 苹果树
    BZOJ1491 [NOI2007]社交网络
    BZOJ3754 Tree之最小方差树
    BZOJ1251 序列终结者
    BZOJ2259 [Oibh]新型计算机
    BZOJ1043 [HAOI2008]下落的圆盘
    D. 预定义变量
    A. 变量命名原则
    B. PHP变量的特点
  • 原文地址:https://www.cnblogs.com/Syinho/p/13222330.html
Copyright © 2011-2022 走看看