闭包的概念: 函数执行都会形成一个私有作用域 保护里面定义的私有变量不受外界干扰,这种保护机制 叫做闭包
但是现在很多的IT开发者认为:函数执行,形成一个不销毁的私有作用域,除了保护私有变量以外,还可以存储一些内容,这样的模式才是闭包
如何写一个闭包
闭包作用:
1、保护
团队协作开发 每个开发者把自己的代码存放在一个私有的作用域中,防止相互之间的冲突
把需要供别人使用的方法 通过return或者window.xxx暴露在全局下即可;
jQuery源码中也是利用保护机制实现的
2、保存
eg:选项卡 的闭包解决方法
单例模式(JS高阶编程技巧:惰性思想/柯理化函数思想…)
在add私有作用域中 将上级(全局)的num变量 修改为110
私有作用域可以修改上级作用域中的变量
全局不能改私有的(因为作用域链只会往上找不会向下级找)
如果要先修改私有作用域的值 必须通过 它的下级修改
fe 里面返回的内部函数—> 也认为是闭包