当function里嵌套function时,内部的function能够访问外部function里的变量。html
先来讲些,介绍些闭包的用处:就是为了不内存泄露而存在的,闭包重点(或者意义)就是理解js的做用域;web
1.缓存
2.面向对象中的对象
3.实现封装,防止变量跑到外层做用域中,发生命名冲突
4.匿名自执行函数,匿名自执行函数能够减少内存消耗.编程
但个人观点依然是:缓存
不要刻意避免使用闭包,但也不该该非要闭包。按代码设计来,按编程节奏来
function foo(x) { 闭包
var tmp = 3;app
function bar(y) {函数
alert(x + y + (++tmp)); spa
} 设计
bar(10); orm
}
foo(2);
上面三行代码在一个当即执行函数中。
三行代码中,有一个局部变量 local,有一个函数 foo,foo 里面能够访问到 local 变量。
好了这就是一个闭包:
「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。
就这么简单。
若是还不够了解,能够去看推荐网址。