JavaScript的执行环境

来源:互联网 发布:毕业证复印件制作软件 编辑:程序博客网 时间:2024/05/01 13:14

    JavaScript的解释器每次开始执行一个函数时,都会为那个函数创建一个执行环境(execution context)。显然,一个执行环境就是所有JavaScript代码段执行

时所在的环境,这个环境的一个重要组成部分就是定义变量的对象,因此,运行不属于任何函数的JavaScript代码对环境使用的就是全局对象,所有JavaScript函数

都运行在自己独有的执行环境中,而且具有自己的调用对象,在调用对象中定义了局部变量。

    既然我们知道全局变量就是全局对象的属性,而局部变量是一个特殊的调用对象的属性,每个JavaScript执行环境都有一个和它关联在一起的作用域链(scope chain),

这个作用域链是一个对象列表或者对象链,当JavaScript代码需要查询变量x的值时,它就开始查看该链的第一个对象,如果那个对象有一个x的属性,那么就采用那个属性

的值,如果第一个对象没有名为x的属性,那么就继续查询第二个对象,依次类推。

    在JavaScript的顶层代码中,作用域链只由一个对象构成,那就是全局对象,所有的变量都是在这一个对象中查询的,如果一个变量并不存在,那么这个变量的值就是

未定义的。在一个函数中,作用域链是由两个对象构成的,第一个是函数的调用对象,第二个就是全局对象。当函数引用一个变量时,首先检查的是调用对象(局部作用域),

其次才检查全局对象。

原创粉丝点击