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

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

为什么要传入undefined?

1.没有传入undefined:

 1 
 2 
 3     
 4         Test HTML Page
 5         
15     
16     
17         
18     
19 

在IE8中执行的结果:

jQuery源码分析--为什么在参数列表中传入undefined_第1张图片

 

 2.传入了undefined:

 1 
 2 
 3     
 4         Test HTML Page
 5         
15     
16     
17         
18     
19 

使用IE8测试:

jQuery源码分析--为什么在参数列表中传入undefined_第2张图片

 

 

解释:

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

原因:

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

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

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

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

 

你可能感兴趣的:(jQuery源码分析--为什么在参数列表中传入undefined)