你有没有看过JQuery 1.4源代码的内幕,并注意到它是如何以下列方式封装的:
(function( window, undefined ) {
//All the JQuery code here
...
})(window);
Run Code Online (Sandbox Code Playgroud)
我读过一篇关于JavaScript Namespacing的文章和另一篇名为" 一对重要的Parens "的文章,所以我知道这里发生了什么.
但我以前从未见过这种特殊的语法.在那undefined做什么?为什么window需要通过然后再次出现?
看起来它window.undefined是可写的,即它可以设置为其默认值以外的其他值(不出所料undefined).
然而,关键在于,每当我提到undefined它时,它指的是window.undefined(window在这种情况下可以删除).
那么我该如何实际访问undefined"实例"呢?undefined如果window.undefined已更改,我将如何设置另一个变量?
如果我编码:
window.undefined = 'foo'; // This code might have been executed by someone/something
var blah = undefined; // blah is not undefined, but equals to 'foo' instead...
Run Code Online (Sandbox Code Playgroud)
我怎么可能解决这个问题?