jQuery源码分析--为什么在参数列表中传入undefined

时间:2019-11-14
本文章向大家介绍jQuery源码分析--为什么在参数列表中传入undefined,主要包括jQuery源码分析--为什么在参数列表中传入undefined使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
(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.

原文地址:https://www.cnblogs.com/lanshanxiao/p/11862764.html