介绍一下闭包和闭包常用场景?

1. 作用域(受javascript链式作用域结构的影响,父级变量中无法访问到子级变量的值,为了解决这个问题,才使用的闭包。)闭包就是能够读取其他函数内部变量的函数。(在JS中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解为”定义在一个函数内部的函数”。无论是在事件中,for循环中,还是在函数自调用中,只要return出来,便有闭包的应用)。
2.闭包会把函数中变量的值保存下来,供其他函数使用,这些变量会一直保存在内存当中,这样占用大量的内存,使用不当很可能造成内存泄漏,故要及时清除,清楚方法有两种,一是标记清除,二便是引用计数清除。
3.闭包的常用场景有一是函数作为返回值,二是函数作为参数来传递。不适用于返回闭包的函数是个特别大的函数,很多高级应用都要依靠闭包实现.
4.使用闭包的好处是不会污染全局环境,方便进行模块化开发,减少形参个数,延长了形参的生命周期,坏处就是不恰当使用会造成内存泄漏

猜你喜欢

转载自www.cnblogs.com/ygunoil/p/9184549.html
今日推荐