日期:2014-05-16  浏览次数:20339 次

JQuery源码的问题
jquery源码最外层
(function( window, undefined ) {})( window );


这个是不是就类似于:
var x= function(window,undefined){};
x(window);

问题是 它为什么要有一个undefined。它最外层这么写 是想做什么呢

------解决方案--------------------
undefined
缓存undefined,能快速访问,也为了防止undefined被覆盖。
------解决方案--------------------
因为undefined不是js的关键字,所以为了屏蔽浏览器的差异,必须手动声明一个undefined变量,其实为未定义(即undefined);你可以在IE下和firefox下试试下面的代码,其中代码1和代码2等效
JScript code
        var undefined = "1";
        
        (function(undefined){        // 代码1
            var a;
            alert(a === undefined);
        })();
        (function(){                // 代码2
            var undefined;
            var b;
            alert(b === undefined);
        })();
        (function(){                // 代码3
            var c;
            alert(c === undefined);
        })();