闭包的定义
理论上闭包的定义如下:
函数执行,形成一个私有作用域,保护里面的私有变量不受外界的干扰,这种保护机制叫做闭包。
但是官方定义如下:
函数执行,形成一个不被销毁的私有作用域,除了保护私有变量以外,还可以存储一些内容,这样的模式才是闭包。
实现一个简单的闭包:
var obj= (function () {
return {};
})();
闭包的作用:
- 保护
团队协作开发,每个开发者把自己的代码存放在一个私有的作用域中,防止相互之间的冲突,把需要供别人使用的方法,通过return
或者window.xxx
暴露在全局下即可。~function () { var jQuery = function () { } window.$ = window.jQuery = jQuery; }();
- 保存
比如选项卡闭包解决办法。