(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(){}); |

浙公网安备 33010602011771号