闭包
1.闭包是什么?


闭包可以理解为“定义在一个函数内部的函数”,在本质上,闭包时将函数外部连接起来的桥梁。
2.闭包怎么创建

当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。
3.闭包有什么作用

闭包使得Javascript的垃圾回收机制不会回收a所占的资源,因为a的内部函数b的执行需要依赖a中的变量。(垃圾回收机制由垃圾收集器监控数据是否具有可达性,正在被调用的函数的局部变量和参数。)
4.闭包的使用场景---setTimoout
原生的setTimeout传递的第一个函数不能带参数,通过闭包可以实现传参效果。


使用场景二--------回调
定义某种行为,然后添加到用户触发的事件(比如点击或者按键)之上,我们的代码通常作为回调(为响应事件而执行的函数)绑定到事件。

使用场景三-------封装私有变量、模拟私有方法
在JAVA中,有支持声明私有方法的方式,即这个私有方法只能被同一个类中的其他方法所调用,类外的不行。而Javascript没有这种原生支持,但我们可以使用闭包来模拟私有方法。
私有方法不仅仅有利于限制对代码的访问,还提供了管理全局命名空间的强大能力,避免了非核心方法弄乱了代码的公共接口部分。
*定义公共函数,访问私有变量和函数。
也称为:模块设计模式。

浙公网安备 33010602011771号