什么是JavaScript闭包?
闭包技术是用来干什么的啊?
其它语言有闭包吗?

解决方案 »

  1.   

    这里有一篇老外的文章可以看看
    http://www.jibbering.com/faq/faq_notes/closures.html
      

  2.   

    参见:javascript函数作用域与闭包深入理解Javascript闭包(closure)
      

  3.   

    function(){}
    就返回一个闭包,说明就是函数的声明,只要记住函数声明时,它所在的环境会被保留下来就行了
    如果你想调用上边闭包,在闭包后边加括号就行了,就形成了(function(){})()这种插件的写法,function test(){
       var i=100;
       function(){}
    }
    这里闭包所在的环境是 test 函数下,而如果闭包是在外边的话,则环境就是全局变量的window下,下边一个简单的示例
    function out(n){
      document.body.innerHTML=n;
    }
    function test(){
        var i=100,t;
       
       function out(n){ document.body.innerHTML=n;}
        
       t=setInterval(function(){out(++i);if(i>110) clearInterval(t)},1000)
    }
    //setInterval 里边声明一个闭包函数并返回,入口地址传给...
    闭包是用来尽量减少全局变量的声明,全局变量太多会减慢系统的索引,而且会造成一定的混乱,
      

  4.   

     把上边那个外边全局的function out(),,去掉,,粘贴的时候忘删了
      

  5.   

    详见:http://www.360kb.com/kb/2_26.html