(function(window, undefined){
//jQuery code;
})(window);

为什么要传入undefined?

1.没有传入undefined:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <title>Test HTML Page</title>
 5         <script type="text/javascript">
 6
 7             var undefined = "你好";
 8             (
 9                 function(window){
10                     alert(undefined);
11                 }
12             )(window);
13
14         </script>
15     </head>
16     <body>
17         <!-- 这里放入内容 -->
18     </body>
19 </html>

在IE8中执行的结果:

 2.传入了undefined:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <title>Test HTML Page</title>
 5         <script type="text/javascript">
 6
 7             var undefined = "你好";
 8             (
 9                 function(window, undefined){
10                     alert(undefined);
11                 }
12             )(window);
13
14         </script>
15     </head>
16     <body>
17         <!-- 这里放入内容 -->
18     </body>
19 </html>

使用IE8测试:

解释:

传入了undefined,则var undefined = "你好";这个将在自调用匿名函数块中不起作用。

原因:

(function(window,undefined){})(test);

匿名函数形参两个,一个window,一个undefined。

自调用的时候,只传了一个实参test,

所以匿名函数的第二个形参被自动赋予了undefined,即window=test, undefined=undefined.

01-03 01:42