js忍者秘籍-闭包
常见创建形式
- 在全局中,创建一个函数
- 在一个函数内创建另外一个函数
特点
- 函数可以访问全局变量
- 内函数可以访问全局变量、外函数创建变量、函数声明之后,调用之前声明的变量、内函数参数;全局可调用内函数引用;
原理
- 内函数声明时,创建了一个闭包,这个闭包包含了那一时刻点上该作用域中的所有变量。
- 只要内函数一直存在,它的闭包就保持该作用于中即将被垃圾回收的变量。
注意
相同作用域内,尚未声明的变量不能进行提前引用。
使用
- 私有变量
- 回调和计时器
- 绑定函数上下文
相同作用域内,尚未声明的变量不能进行提前引用。