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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

lanshanxiao   2019-11-14 我要评论
(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.

 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们