//一下文章为个人理解产物,仅供参考
概念:
使内部函数可以访问定义在外部函数中的变量
作用:
- 保护: 私有变量不污染全局,且不受外界影响
- 保存: 形成不被销毁的栈内存,把一些值保留下来
- 应用场景: 多人协同开发合代码可能出现同样的函数名,就将各自的代码块用闭包的思想包装起来,也可以使得一些方法可以常驻内存,不会被垃圾回收机制销毁
如何供外部使用
- 1在闭包函数中,通过给全局变量赋值,外部可以直接调用,如jQuery
- 2 在函数中用return 返回
例子
for (var i = 0; i < 5; i++) {
(function (idx) {
setTimeout(function () {
console.log(idx);
}, 5);
})(i);
}