javascript高级程序设计中;对执行环境、做用域链、变量对象、活动对象的解释:javascript
一、执行环境:前端
执行环境;有时也叫环境;是JavaScript中最为重要的一个概念;执行环境定义了变量或函数有权访问的其余数据;java
二、变量对象:函数
每个执行环境都有一个与之关联的变量对象;环境中定义的全部的变量和函数都保存在这个的对象中;this
三、做用域链:设计
代码在环境中执行时;会建立变量对象的做用域链;保证对执行环境有权访问的全部变量和函数的有序访问;做用域链的前端;始终是当前执行代码所在环境的变量对象;指针
四、活动对象:对象
若是当前执行环境是函数;则将活动对象做为变量对象;blog
理解:执行环境是一个感性的笼统的说法;指的是函数运行时所须要的全部的必要因素;在这里就是包含全部的JavaScript中预先定义和人为定义的变量、函数等其余数据;而如何将这些数据“整齐有序”的存放起来;JavaScript不会容许将其数据散乱的堆积在一块儿;因而有了变量对象的这个概念;将全部的执行环境中的变量和函数都做为这个对象的“属性和方法”;因而散乱的数据就能够实现整齐有序的访问了;ip
活动对象则单是执行环境是函数的时候;使用this、arguments和其余命名参数的值初始化函数的活动对象;做用域链则是包含当前执行环境中的变量对象和上级环境的变量对象,一直到全局环境的变量对象;它有一个内部属性:[[scope]];
本质上;做用域链是一个指向变量对象的指针列表;只是引用变量对象。