你有没有看过JQuery 1.4源代码的内幕,并注意到它是如何以下列方式封装的:
(function( window, undefined ) {
//All the JQuery code here
...
})(window);
Run Code Online (Sandbox Code Playgroud)
我读过一篇关于JavaScript Namespacing的文章和另一篇名为" 一对重要的Parens "的文章,所以我知道这里发生了什么.
但我以前从未见过这种特殊的语法.在那undefined做什么?为什么window需要通过然后再次出现?
在John Resig关于他如何构建jQuery 1.4 的幻灯片中,他提到了一个点,他undefined在jQuery闭包中添加了一个变量,因为"我们可以重用(变量)".
undefined 不是一个普通的变量:
> var undefined = 4
undefined
> undefined
undefined
Run Code Online (Sandbox Code Playgroud)
因此,我们知道undefined不是变量.那么为什么undefined在jQuery源代码中会重新定义?
