理解JS的闭包

理解JS的闭包

作者:LAMP小白  点击:1860  发布日期:2012-12-26 00:34:00  返回列表

官方解释:指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。


我理解的是,根据JS的垃圾回收机制,只有在一个函数运行完成且在其他地方也没有函数或变量使用他时,这个函数中的局部变量才会被释放,闭包的原理就是声明一个函数,并在其中声明变量和函数,然后通过一些手段,让这些变量和函数一直被使用,从而达到将一个局部变量或方法公用到外部的目的


这样做有什么好处?

安全,修改外部没有办法修改局部变量,只能通过预留好的修改方法进行修改

可以达到类的效果,即同样的函数能够存在不同的结果,他们真实存在,却相互独立

mio_lt;scriptmio_gt;
    mio = new Object();
    var val = 'out';
    mio.get = function(){
        var val = '1';
        function set( i ){
            val = val + i;
            return val;
        };
        return set;
    }
    var c = mio.get();
    var d = mio.get();
    alert( c(1) );
    alert( c(2) );
    alert( d(1) );
    alert(val);
mio_lt;/scriptmio_gt;




上一篇:jqueryUI缓动特效 下一篇:快递查询API
0