function func()
{
  //
}
见过一些函数是这样声明的,外面被一对括号包起来,不知道这样写是什么意思,有什么意义?

解决方案 »

  1.   

    一般是没有名字的函数
    (function(){})();//后面加括号表示执行这个函数,好处是可以避免大量全局变量的污染和变量冲突
      

  2.   

    function func1(…){…} 
    var func2=function(…){…}; 
    var func3=function func4(…){…}; 
    var func5=new Function();  
    这些都是声明函数的正确语法
      

  3.   


    //给你下面这样的举例,会直接弹出alert结果:100
    (function(arg){
        alert(arg);
    })(100);//如上等价于:
    var f = function(arg){
        alert(arg);
    };
    f(100);
      

  4.   


    意义何在?var f = function(arg){ alert(arg); }; f(100);这样写不是更好?
      

  5.   

        *
    #9楼 得分:0回复于:2010-02-28 14:03:17
    引用 8 楼 ymmc001 的回复: 引用 5 楼 amingo 的回复: 引用 3 楼 zhangshaolongjj 的回复:闭包,网上有很多例子 解释清楚JScript code//给你下面这样的举例,会直接弹出alert结果:100(function(arg){ alert(arg); })(100);//如上等价于:var f=function(arg){ alert(arg); }; f(100);
    意义何在?var f = function(arg){ alert(arg); }; f(100);这样写不是更好?
      

  6.   

    http://www.cn-cuckoo.com/wordpress/wp-content/uploads/2007/08/JavaScriptClosures.html我是想来说下
    (function(){})()
    不一定就是闭包你说这么写有什么好处单从你写的这个例子var f=function(arg){ alert(arg); }; f(100); 
    和 (function(arg){alert(arg);})(100);  应该是看不出好处的吧如果有大量的变量  函数  和方法应该还是可以体现出好处的
    如可以减少全局变量
    多个(function(){})() 在里面还可以使用同名的变量  避免变量冲突
      

  7.   


    (function(){})()
    不是要闭包   主要是为了直接执行了一个匿名函数 执行目的要问作者var f=function(){...}; f(); 这样的话 f这个函数 还是可以调用得到
      

  8.   

    var f = function(arg){ alert(arg); }; f(100); 这样写不是更好?
    这样写多了个f变量
    就是这点区别
    当然如果你要重复调用就肯定要这种了