作用域
函数的属性
对象有属性,函数也有自己的属性
function test(){
}
test.name; // "test"
test.length;//0
对象有一些属性是我们无法访问的,这些属性是JS引擎内部固有的隐式属性
[[scope]]
函数创建时,生成的一个JS内部的隐式属性 是函数存储作用域链的容器
AO
每个函数执行前都要生成一个新的AO,AO是一个即时存储容器,函数调用完毕AO会被销毁。
所有的函数[[scope]]栈底保存了GO, AO排在最顶层
函数在被定义的时候,先拿上级的[[scope]],再把自己生成的AO加进去