当执行JavaScript代码时,JavaScript引擎会创建一个执行上下文(也被称为作用域),它设定了代码执行时所处的环境。
JavaScript引擎会在页面加载后创建一个全局的执行上下文,然后每执行一个函数时都会创建一个对应的执行上下文。最终建立一个执行上下文的堆栈,当前起作用的执行上下文在堆栈的最顶层。
每个执行上下文都有一个与之关联的作用域链,用于解析标识符。作用域链包含一个或多个变量对象,这些对象定义来执行上下文作用域内的标识符。全局执行上下文的作用域链中只有一个变量,它定义了JavaScript中所有可用的全局变量和函数。当函数被创建(不是执行)时,JavaScript引擎会把创建时执行上下文的作用域链赋给函数的内部属性【[scope]】(内部属性不能通过JavaScript来存取,所以无法直接访问此属性)。然后,当函数被执行时,JavaScript引擎会创建一个活动对象,并在初始化时给this、arguments、命名参数和该函数的所有局部变量赋值。活动对象会出现在执行上下文作用域链的顶端,紧接其后的是函数【[Scope]】属性中的对象。
- 首页
- 同城爆店码收费多少钱
- 正文