函数的作用域链在定义时已经确定

Daming 2018-11-09
0条评论 184 次浏览
Daming 2018-11-090条评论 184 次浏览

红宝书上的解释:其实作用域链在函数定义时已经确定了,作用域链是和函数定义时的位置相关的。在函数创建的时候创建一个包含外部对象(包括全局对象和所有包含自己的对象)的作用域链,储存在内部[[scope]]属性中。函数执行的时候会创建一个执行环境,通过复制[[scope]]属性中的对象,构建执行环境的作用域链,并把自己的活动对象推向当前作用域链的前端以此形成完整的作用域链。[[scope]]属性中保存的是对可访问变量对象的引用,而不是值的复制。

0

发表评论

电子邮件地址不会被公开。