(function() {})();和(function(){}())

两种写法的效果都一样:声明一个匿名函数并且立即调用之;

如果需要传参,那就写在圆括号里:例如:

(function(param){/*代码体*/})(param);

多个参数用逗号分隔:

(function(p1,p2){/*代码体*/})(p1,p2);

多举几个我见过的别人的写法:

一个依赖zepto或者jQuery的js插件:
(function($){/*...*/})(window.Zepto || window.jQuery);

有2个参数的:
(function(win, doc){/*...*/}(window, document));

 

 

(以下摘自别人的博客,时间不多,暂时先全复制过来)
1
$( function (){...});

 

  的完整写法是:

?
1
$(docunemt).ready( function (){...});

 

  意思是在DOM加载完毕后执行ready()方法。

?
1
( function ($){...})(jQuery);

 

 等同于下面的写法:

?
1
2
var  fun =  function (params){....};
fun(jQuery);

 

 是立即执行匿名函数fun,这里参数是jQuery。这个写法主要目的是保证jQuery不与其他类库或变量有冲突。

?
1
( function ($){....})(jQuery);

 

 在定义后就立刻执行, 在执行顺序上可能要先于

?
1
$( function (){});

 

你可能感兴趣的:((function() {})();和(function(){}()))