闭包

1.闭包是什么?

 

 

 

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

2.闭包怎么创建

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

3.闭包有什么作用

闭包使得Javascript的垃圾回收机制不会回收a所占的资源,因为a的内部函数b的执行需要依赖a中的变量。(垃圾回收机制由垃圾收集器监控数据是否具有可达性,正在被调用的函数的局部变量和参数。)

 

4.闭包的使用场景---setTimoout

原生的setTimeout传递的第一个函数不能带参数,通过闭包可以实现传参效果。

使用场景二--------回调

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

 

使用场景三-------封装私有变量、模拟私有方法

 

在JAVA中,有支持声明私有方法的方式,即这个私有方法只能被同一个类中的其他方法所调用,类外的不行。而Javascript没有这种原生支持,但我们可以使用闭包来模拟私有方法。

私有方法不仅仅有利于限制对代码的访问,还提供了管理全局命名空间的强大能力,避免了非核心方法弄乱了代码的公共接口部分。

 

*定义公共函数,访问私有变量和函数。

也称为:模块设计模式。

posted @ 2022-05-09 22:57  Purgatory  阅读(59)  评论(0)    收藏  举报