在jquery-1.3.1.js中發現了如下寫法:
var
// Will speed up references to window, and allows munging its name.
window = this,
// Will speed up references to undefined, and allows munging its name.
undefined
從上面的注釋可以得知:這些寫是為了提高性能
查了一下資料,得知這些寫為什么能提高性能。
首先,jquery-1.3.1.js的代碼都寫在一個匿名函數中,上面的代碼就定義2個局部變量:window和undefined;
window變量被賦值為this(既window對象,感覺有點迷惑人,只不過2個變量名一樣而已);局部變量undefined沒有
賦值,但是在js代碼預編譯的時候會被賦值為window.undefined;這樣在匿名函數內部引用window,undefined時候
直接引用局部變量window,undefined就可以了!不用再向上引用全局變量的window,undefined;
從本質上說,這里利用了函數的作用域效果;當在函數內部調用window,undefined對象時候,系統會先在本地作用域
查找,找到就調用;找不到,就到上一級的作用域查找;如此類推;
不合適的地方,請大家指出!