• 变量对象


    如果变量与执行上下文相关,那变量自己应该知道它的数据存储在哪里,并且知道如何访问。这种机制称为变量对象(variable object)。

    变量对象(缩写为VO)是一个与执行上下文相关的特殊对象,它存储着在上下文中声明的以下内容:
    变量 (var, 变量声明);
    函数声明 (FunctionDeclaration, 缩写为FD);
    函数的形参

    举例来说,我们可以用普通的ECMAScript对象来表示一个变量对象:

    VO = {};



     每一个执行上下文都有一个变量对象,在函数内部定义的所有变量和函数都被添加到这个对象的属性.

    整个过程的描述:

     1> 对于任何形参,在变相对象上添加相应的属性,并把它们的值设置为传递给函数参数的值

       2> 对于任何函数声明,在变量对象上添加相应的属性,值即为该函数.如果一个函数声明使用了和形参中任何一个相同的标识符,那么那个属性将被覆盖.

       3>对于任何变量声明,在变量对象上添加相应的属性,初始化它们的值为undefined,不管这些变量在源代码中是怎样呗初始化的,如果一个变量使用与一个已经定义过的属性相同的标识符,那么        

         这些定义过的属性不一定被覆盖

     该算法的作用就是是所谓的函数和变量声明的提升,虽然函数作为整体被提升,但变量却只有它们的声明呗提升

  • 相关阅读:
    最漂亮( iTerm2+oh-my-zsh配色)
    python对excel的操作
    appium环境搭建
    Python单元测试unittest
    git命令日常总结
    mongon数据库的查询样例
    组合逻辑电路笔记
    Jlink驱动下载
    机组笔记
    计算机网络随笔(一部分知识点)
  • 原文地址:https://www.cnblogs.com/yangyang63963/p/5690825.html
Copyright © 2020-2023  润新知