您的位置:首页 > Web前端 > JavaScript

JavaScript闭包的简单理解

2017-04-24 18:15 225 查看
之前在上web课的时候,听张老师讲JS闭包感觉很简单,就是函数相互嵌套,内部的函数就叫做外部函数的闭包(Closure)。

话说闭包这个词真的挺常出现的,离散里面有它,数据库范式里面也有它。

最近看到一个比较正规的表述:有权访问另一个函数作用域内变量的函数都是闭包。

闭包的作用实际上是增强了函数的封装性,比如你在外部函数定义了一个局部变量,再将它放入一个闭包中,那么除了这个闭包之外,其他所有函数都没有办法访问,这就加强了对这个局部变量的保护。而且闭包会对这个局部变量产生一个引用,这也保证了在触发GC的时候不会将这个局部变量回收(现在还不知道有什么具体用途...大概是用来封装和保护私有变量吧)。

不过滥用闭包会导致产生一大堆没有办法回收的变量,浪费内存,所以使用的时候还是多加小心吧。

想起之前踩过的一个坑:在函数里声明变量的时候漏打了一个var,还放到了闭包里面...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web 闭包 javascript