什么是闭包:首先闭包是一个函数,就是一个函数返回一个函数
在javascript与设计模式里面说:函数的作用域不是他的运行环境,而是他的申明环境,所以,一个闭包可以反问一个函数的内部变量,
javascript对于重复定义的变量他是不报错的(java 报错):
var a = "123";
var a = ;
如果后面的定义赋值了,那么这个a就会被修改,如果不赋值初始化,那么他就还是原来的值!
1.匿名函数是不可以直接调用的,名字都没有怎么调用
function (){
alert(123);
}();
通过这种方法实现块作用域,(私有作用域),(因为函数运行完,他里面的局部变量消失了)
2,为了能调用匿名函数需要将函数利用()装换为表达式,然后调用好,对于这个的编写技巧:先写2个(),然后在第一个里面写匿名函数
为什么闭包能实现累加:因为他让那个局部变量驻留在内存了!