美文网首页
javascript 执行环境,变量对象,作用域链

javascript 执行环境,变量对象,作用域链

作者: LYF闲闲闲闲 | 来源:发表于2017-08-16 16:21 被阅读29次

执行环境

函数都会创建的执行环境,包括 变量对象,作用域链,上下文(this)。执行环境定义了变量或函数有权访问的其他数据。

变量对象(VO)

存储被定义在执行环境中的变量

变量对象内容包括:

  1. 函数的形参
  2. var声明的变量
  3. 函数声明(不包括函数表达式)

全局环境中的变量对象

是全局对象自己
全局对象在进入任何执行环境之前就已经创建了的对象

函数环境的变量对象

是活动对象(AO),在进入函数执行环境中被创建,它通过函数的arguments属性初始化

作用域链

  1. 一个执行环境的数据(变量、函数声明和函数形参)作为属性存储在变量对象中。
  2. 同时也知道,变量对象在每次进入环境时创建,并填入初始值,值的更新出现在代码执行阶段。

代码在一个环境中执行的时候,会创建变量对象的一个作用域链,作用域链的用途是保证对变量和函数的有序访问。

本质:是一个指向变量对象的指针列表,它只引用但不实际包含变量对象。

一个作用域链包括父级变量对象(作用域链的顶部)、函数自身变量和活动对象
当查找标识符的时候,会从作用域链的活动对象部分开始查找,然后(如果标识符没有在活动对象中找到)查找作用域链的顶部,循环往复,就像作用域链那样。

参考
http://www.cnblogs.com/TomXu/archive/2012/01/16/2309728.html

相关文章

  • 理解JavaScript 作用域、执行环境和作用域链

    理解JavaScript 作用域、执行环境和作用域链 执行环境: 1.包含一个代码无法访问的变量对象,只供浏览器访...

  • 2018-12-24

    JavaScript作用域链 当代码在一个环境中执行时,会创建变量对象的一个作用域链(scope chain)来保...

  • JS作用域链

    作用域:定义这个变量的区域 作用域链:当前活动对象,加上包含它的所有活动对象 作用域链的作用:是保证执行环境里有权...

  • JS_0: 执行环境和作用域链

    JavaScript,目前对于执行环境和作用域链的理解 什么是作用域链? 要讲作用域链就得先讲执行环境。 每个函数...

  • JS作用域链

    当代码在一个环境中执行的时候,会创建变量对象的作用域链(scope chain)作用域链的用途是:保证对执行环境...

  • 2018-06-07

    进入函数执行环境,创建该执行环境对应的作用域链,作用域链中各项指向 变量对象。 函数退出后视情况决定是否保留活动对...

  • javascript 执行环境,变量对象,作用域链

    执行环境 函数都会创建的执行环境,包括 变量对象,作用域链,上下文(this)。执行环境定义了变量或函数有权访问的...

  • 浅谈js作用域

    当代码在一个环境中执行时,会创建变量对象的一个作用域链(scope chain)。作用域链的用途,是保证对执行环境...

  • javascript的执行上下文—作用域链 闭包

    js作用域:函数作用域、全局作用域作用域链:由当前环境与上层环境的一系列变量对象组成,它保证了当前执行环境对符合访...

  • 作用域链

    当代码在一个环境中执行时,会创建变量对象的一个作用域链。作用域链的用途,是保证对执行环境有权访问的所有变量和函数的...

网友评论

      本文标题:javascript 执行环境,变量对象,作用域链

      本文链接:https://www.haomeiwen.com/subject/maxzkxtx.html