jquery源码最外层
(function( window, undefined ) {})( window );
这个是不是就类似于:
var x= function(window,undefined){};
x(window);问题是 它为什么要有一个undefined。它最外层这么写 是想做什么呢

解决方案 »

  1.   

    undefined
    缓存undefined,能快速访问,也为了防止undefined被覆盖。
      

  2.   

    因为undefined不是js的关键字,所以为了屏蔽浏览器的差异,必须手动声明一个undefined变量,其实为未定义(即undefined);你可以在IE下和firefox下试试下面的代码,其中代码1和代码2等效 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);
    })();