25.闭包 你不会困 2023-04-06 45 阅读1分钟 js采用的是词法作用域,也就是静态作用域(在函数定义时已经确定了) 作用域链,函数存在一个隐式属性[[scopes]],这属性用来保存当前函数的执行上下文环境,在数据结构上是链式的(称为作用域链),只能向上访问,无法向下访问,所以函数内部可以访问其外部变量,函数外部却无法访问函数内部变量 闭包: 局部变量无法共享和长久保存,全局变量可能会造成全局污染,希望有一种机制可以长久保存变量,又不会造成全局污染,闭包就出现了 闭包:返回一个函数,函数内部对局部变量存在引用关系,使其存在于内存中