(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(){});
原文地址:https://www.cnblogs.com/hamsterPP/p/5081421.html