闭包是指能访问其他函数作用域变量的函数。
一般用return方法,立即执行函数(小闭包)。比如
function fn() {
var num=10;
return function() { console.log(num);}
}
var f=fn();
f();
f作为全局,拿到了fn作用域中的num。
我个人认为,闭包就像是,外面直接是拿不到里面的变量的,所以里面再放进去一个函数拿到它上一层的变量,然后返回给外面,这样就相当于一个中介,成功让外面通过它拿到了里面的变量。
所以闭包的作用是延申了变量的作用范围,让变量不仅能被内部访问,还能被全局或其他地方访问。