js闭包

匿名函数闭包:
<script>
(function (){
        alert(123);
})();//然后通过()直接调用前面的表达式即可,因此函数可以不必写名字;
</script>

闭包三个特性:

1.函数 嵌套函数
2.函数内部可以 引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收

好处:

1.希望一个变量长期驻扎在内存中
2.避免全局变量的污染
3.私有成员的存在


全局变量累加:
<script>
var a = 1;
function abc(){
        a++;
        alert(a);
}
abc();            //2
abc();            //3
</script>

局部变量累加:
<script>
function outer(){
        var x=10;
        return function(){  //函数嵌套函数
                x++;
                alert(x);
        }
}
var y = outer();   //外部函数赋给变量y;
y();               //y函数调用一次,结果为11,相当于outer()();
y();               //y函数调用第二次,结果为12,实现了累加
</script>


http://segmentfault.com/a/1190000000652891
这里有一篇关于闭包的基础性研究,也可以看看: http://www.html-js.com/article/2837

你可能感兴趣的:(js闭包)