参考 http://www.jb51.net/article/99801.htm
闭包的特点:
1:在一个函数内部定义另外一个函数,并且返回内部函数或者立即执行内部函数。
2:内部函数可以读取外部函数定义的局部变量
3:让局部变量始终保存在内存中。也就是说,闭包可以使得它诞生环境一直存在。
立即执行的函数表达式:
通常情况下,只对匿名函数使用这种“立即执行的函数表达式”。它的目的有两个:一是不必为函数命名,避免了污染全局变量;二是IIFE内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。
参考 http://www.jb51.net/article/99884.htm
如果我们在js中写的方法都是全局的方法,在需要嵌入到别人的界面中的时候,这些全局的东西很可能会和别人的东西重名从而引发错误,所以说需要用js闭包包起来。
我的理解是,闭包就是能够读取其他函数内部变量的函数。