javascript在浏览器中一般都是解释执行的,不同于一般的语言比如c,代码经过编译后形成了可执行代码,
执行时载入即可。我们通常看到的javascript是明显分为两个阶段的,第一个阶段就是代码的载入,第二个
阶段是代码的执行阶段。在这其中,函数式最值得讨论的代码,当javascript解释器执行到函数时,其实
已经经过一系列对该函数的处理,其中一点就是将函数的内部属性即在ecmascript中定义的[[scope]]进行
确定,这个是在函数定义时就确定下来的,这也是javascript之所以被称为一门语法(静态)作用域规则的
语言的原因。而到了执行一个函数的时候,解释器或者说解释引擎首先会为该函数的执行创建一个执行坏境
该函数就在该环境中执行,该环境中一般会包括以下几个内容:变量对象(在函数中也可以称为活动对象)
还有一个this值,this值是指该函数的调用者或者说拥有者,另外便是创建作用域链以查找变量,这个作用域
链一般是由把变量对象添加到函数的[[scope]]顶端构成的。这样这个执行环境基本上就形成了。然后就开始
正式的执行其中的代码。执行完毕后一般该环境就会消失。也就是执行完毕。