如果对于作用域,词法作用域你还不是很清楚,那么你可就要好好读读这篇文章了,它可是理解闭包的关键! 作用域是什么? 理解作用域 为了便于理解,笔者使用对话的方式进行解释 引擎:负责js程序的编译以及执行过程 编译器:负责语法分析以及代码生成等脏活 作用域:负责收集并维护由所有声明标识符组成的一些列查询,并实施一套非常严格的规则,确定当前执行的代码对标识符的访问权限 假设存在var= 1;看似是一个声明,但是引擎老兄并不这么认为,引擎会觉得这里有两个不同的声明,一个由编译器在编译时运行,另一个由引擎在运行时处理。var a =1 会分解为var a;a=1 首先遇到var a;编译器会询问作用域是