javaScript [[scope]]学习笔记
在javaScript 学习中,闭包肯定是一个让人头疼的问题,而闭包必定离不开[[scope]]作用域
scope存储了执行期上下文的集合
而了解scope以及scope链又是一个十分抽象的问题
我们先把它具体化成问题
有这样一个函数:
function a(){ var a = 1; } a();
在执行这段代码时
首先 a从预编译到执行期
1.a defined a.[scope] 0 :GO
2.a doing a.[scope] 0 :AO
1 :GO
a首先创建GO 占scope chain 的第0位
而后,function a 创建 AO 抢占 scope chain 的第0位
GO则变成了 scope chain的第1位
如图:
而在运行结束后,上下文将从第0位开始销毁
也就是AO先销毁,而后GO再销毁
[scope]作用域就是这样形成了一个集合,呈现链状结构,供运行时调用
博主是初学者,可能理解上会有错误,若有错误,求指正,谢谢