函数执行过程与作用域链
执行上下文
在调用函数的之后,在函数执行之前,需要创建一个执行上下文。
这个执行上下文有三个重要属性:
-
作用域链
-
变量对象
-
this
作用域链与变量对象
当代码执行,解析标识符(查找变量) 的时候,首先从当前的变量对象(活动对象 )中搜索,如果没有找到,就会往后逐层搜索各个父级执行上下文的变量对象,直到全局上下文的变量对象——全局对象。
这个由各级执行上下文的变量对象组成的链表就是作用域链。
函数从创建到执行的七个过程
前言
因为在函数执行之前,需要创建它的执行上下文。创建执行上下文之后,还要设置它的三个重要属性:变量对象,作用域链,this 。因此,在函数执行之前,需要几个过程来创建它的执行上下文,并逐步设置执行上下文的三个重要属性:变量对象,作用域链,this。
思考(个人)
执行上下文是在函数被调用之后才创建的,如果在函数被调用,创建执行上下文之后才从零开始设置它的变量对象、作用域链,需要耗费很多时间,能否在调用函数并创建执行上下文之