js中的闭包原理详解
要了解清楚js中的闭包制机,那么得先了解全局执行环境、块级执行环境、函数执行环境、变量对象、环境栈、作用域链、摧毁执行环境。
全局执行环境
全局执行环境指的是最外层的执行环境。在web中全局执行环境被认为window对象,所以你在全局环境中创建的变量与函数都是对象的属性和方法。
函数执行环境
函数执行环境指的是函数体。
块级执行环境
块级执行环境指的是块级定义区域。
实例讲解
//例子1:常见的函数嵌套
[Scopes]: 是当前匿名函数的作用域链。
索引为0的:是a函数的执行环境的变量对象,x表示 变量对象中的。
索引为1的:全局执行环境变量对象。
//例子2:访问块内部变量
1:返回块级内容函数 实现在全局执行环境中访问块级内容变量。