非官方解释:
- 作用域:
Javascript中,有全局作用域,当然除了这个,还有函数创建的作用域;只要函数创建了,就可能产生一个作用域,一个独立的区域;不管函数是否调用
- 执行上下文环境:
代码的执行,肯定要在一个相对的空间里面,这个空间里面有代码执行所需要的变量和一些属性(方法也是一种特殊的属性);这个空间就是思维的执行上下文环境,里面存储着变量和属性;函数的执行上下文环境是在调用的时候创建,要是不调用,怎么知道传入什么参数。代码执行之前,会产生执行上下文环境,在程序执行的时候,对上下文环境的变量赋值
- 关系:
一个作用域中,有可能有多个上下文执行环境(闭包),或者一个上下文环境都没有(函数执行完成,上下文环境销毁,或者没有调用函数);