匿名函数,你可以查一下,相当于function aaa(){}
aaa()

解决方案 »

  1.   


    function aaa(){/函数体/} 
    aaa()和直接执行
    /函数体/没有什么区别吧?
    也就是匿名函数不会导致污染全局变量,还有其它作用吗?
    如果仅仅是因为上面的原因的话,把函数体用{}括起来不一样吗?
    {
        /函数体/
    }
      

  2.   

    <script>
    var a=0;
    {
    var a=1
    }
    alert(a)var b=0;
    (function(){
    var b=1
    })()
    alert(b)
    </script>
      

  3.   

    谢谢cloudgamer 那匿名函数的这种写法除了可以避免全局变量污染外,还有其它作用吗?
      

  4.   

    例如<script>
    var f=[]
    for(i=0;i<3;i++){
    f[i]=function(){alert(i)};
    }
    f[0]();
    f[1]();
    f[2]();var ff=[]
    for(i=0;i<3;i++){
    (function(i){ff[i]=function(){alert(i)};})(i)
    }
    ff[0]();
    ff[1]();
    ff[2]();
    </script>
      

  5.   

    $.each(arr,function(i,n){...}) <=> $.each(arr,handler);
    function handler(i,n){
      ....
    }
      

  6.   

    @6楼 从你那得到的灵感 
    看看下面的代码吧 
    模拟闭包
    var f=[]
    for(i=0;i<3;i++){
        f[i]=eval("function(){alert("+i+")}")

    }
    //哈哈哈  看看下面的结果 模拟闭包 不过ff下正确弹出  ie下没反应(我晕)
    f[0]()//弹出0
    f[1]()//弹出1
    f[2]()//弹出2
      

  7.   

    加个0就都能弹出了
    var f=[]
    for(i=0;i<3;i++){
        f[i]=eval("0,function(){alert("+i+")}")//注意这加了个0,  
        
    }
    //ie ff都能弹出下面的了
    f[0]()//弹出0
    f[1]()//弹出1
    f[2]()//弹出2